搜索
bottom↓
回复: 7

请教一个诡异的程序问题

[复制链接]

出0入0汤圆

发表于 2012-9-24 10:16:16 | 显示全部楼层 |阅读模式

                else
                {
                         j=0;
//                         speed_av=0;
                         kkk=kkk+1;                  //123
                         dispmap[4] &= 0xDF;  //不显示T1护航
                         if(kkk<3)
                         {
//                                kkk++;     //1234
                                speed_write(0,l_speed_gps);
//                                compass_drow(l_get_gpscompass);
                                beep=0;
                         }
                         else
                         {
                                if(kkk>2)
                                {
                                        kkk=5;
                                }
                beep=1;
                                speed_write(1,voltage);
                                compass_drow(l_get_gpscompass);   //闪烁显示
                                Delayms(100);
                            Delayms(100);
                                Delayms(100);
//                            Delayms(100);
//                                Delayms(100);

                                dispmap[4] &= 0x30;  
                dispmap[5] &= 0x00;  
                                Delayms(100);
                            Delayms(100);
                                Delayms(100);
//                            Delayms(100);
//                                Delayms(100);

                         }
                }

我用io口模拟串口收发程序,代码如上,注释123处的代码如果不屏蔽,
程序能接收PC串口发过来的数据,波特率是57600,但是回传给pc,速率特别慢,差不多是0.5秒一个字符
注释123处的代码如果屏蔽,收发就都正常
如果把123处得代码放在1234处,还是会出现上面的问题
变量kkk是一个全局变量,除了在开始初始化为0之外,就在代码的这个地方使用了
已经仔细查看代码n遍了,始终不知到其中的问题出在哪,请大家指教

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入8汤圆

发表于 2012-9-24 10:37:56 | 显示全部楼层
if(kkk>2)
  {
    kkk=5;
  }
有可能执行吗
应该是逻辑有问题

出0入0汤圆

 楼主| 发表于 2012-9-24 10:45:08 | 显示全部楼层
lindabell 发表于 2012-9-24 10:37
if(kkk>2)
  {
    kkk=5;

这个地方测试仿真过,可以执行

出0入8汤圆

发表于 2012-9-24 11:01:39 | 显示全部楼层
本帖最后由 lindabell 于 2012-9-24 11:03 编辑

看错了   






























出0入0汤圆

 楼主| 发表于 2012-9-24 14:59:04 | 显示全部楼层
问题还未解决,继续求指教!

出0入0汤圆

发表于 2012-9-24 20:46:43 | 显示全部楼层
kkk增加的话,如果kkk满足了else语句的条件,进入了else语句部分,里面那些延时函数延时会很长吧,好几百毫秒总有了。延时的时候CPU不能做其他事情了,你用USART口发的数据是不是要程序中写进去的?延时的时候就什么都没法做了,也没法写数据了,但是接收的数据是由计算机不断写的,所以正常。个人一点看法,不知道对不对,如有错误请指正。

出0入0汤圆

 楼主| 发表于 2012-9-25 08:02:37 | 显示全部楼层
楼上说的有道理,我改改程序看看!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表