延时程序死机

[复制链接]
1417|21
 楼主| jlyuan 发表于 2016-10-23 17:02 | 显示全部楼层 |阅读模式
程序中运行到延时程序,程序就好像死机了,什么反应都没有了
jiajs 发表于 2016-10-23 17:04 | 显示全部楼层
延时程序能进入吗?
 楼主| jlyuan 发表于 2016-10-23 17:06 | 显示全部楼层
程序跳出后,不知程序跑到哪里去了,就死机了。软件模拟是没有问题的。
c51写的。
zhanghqi 发表于 2016-10-23 17:10 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| jlyuan 发表于 2016-10-23 17:12 | 显示全部楼层
void delayms(unsigned int tt) {
    unsigned int t;                    //   ?                             
     for(;tt>0;tt--)               
       for(t=230;t>0;t--)        //  ?        
         {                                                
          ;
         }     
}
shimx 发表于 2016-10-23 17:14 | 显示全部楼层
unsigned int t;反汇编看看t是什么样的,会不会因为该值是临时变量,由于中断的缘故,该变量的值老是被修改而无法到达0。
 楼主| jlyuan 发表于 2016-10-23 17:15 | 显示全部楼层
已经把程序中大部分都删除了,就留一个延时程序了,真正原因还是没找到啊!
zhanghqi 发表于 2016-10-23 17:17 | 显示全部楼层
可以用char的要用int。
wyjie 发表于 2016-10-23 17:20 | 显示全部楼层
考虑狗、中断、和函数重入、堆栈溢出的问题。
 楼主| jlyuan 发表于 2016-10-23 17:23 | 显示全部楼层
加入:NOP NOP试试。
dengdc 发表于 2016-10-23 17:25 | 显示全部楼层
无符号类型减不到0??????
wuhany 发表于 2016-10-23 17:27 | 显示全部楼层
无符号的 在MDK或是其他IDE下不能简单判断 大于(小于0)0,要用0xff表示,这个方法 在WINDOWS或是LINUX下就正常的,
 楼主| jlyuan 发表于 2016-10-23 17:29 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先
aspoke 发表于 2016-10-23 22:38 | 显示全部楼层
你使用的whilt吗?
aspoke 发表于 2016-10-23 22:41 | 显示全部楼层
是不是一直在死循环没哟跳出来。
l科科1987 发表于 2016-10-23 23:29 | 显示全部楼层
for下面都加括号试试,其实都省略大括号也是可以的。
minzisc 发表于 2016-10-24 16:49 | 显示全部楼层
你的延时程序呢?
minzisc 发表于 2016-10-24 16:50 | 显示全部楼层
while还是for循环呢?
vibra2016 发表于 2016-10-24 22:25 | 显示全部楼层
这个是程序跑飞了?
迪卡 发表于 2016-10-25 20:35 | 显示全部楼层
是不是定义的数据类型不对呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部