打印

运行到延时程序程序就好像死机了

[复制链接]
1125|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2014-3-31 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jiajs| | 2014-3-31 20:51 | 只看该作者
延时程序能进入吗?

使用特权

评论回复
板凳
jlyuan|  楼主 | 2014-3-31 20:53 | 只看该作者
程序跳出后,不知程序跑到哪里去了,就死机了。软件模拟是没有问题的。
c51写的。

使用特权

评论回复
地板
zhanghqi| | 2014-3-31 20:53 | 只看该作者
程序呢

使用特权

评论回复
5
jlyuan|  楼主 | 2014-3-31 20:55 | 只看该作者
void delayms(unsigned int tt) {
    unsigned int t;                    //   ?                             
     for(;tt>0;tt--)               
       for(t=230;t>0;t--)        //  ?        
         {                                                
          ;
         }     
}

使用特权

评论回复
6
shimx| | 2014-3-31 20:55 | 只看该作者
unsigned int t;反汇编看看t是什么样的,会不会因为该值是临时变量,由于中断的缘故,该变量的值老是被修改而无法到达0。

使用特权

评论回复
7
jlyuan|  楼主 | 2014-3-31 20:57 | 只看该作者
已经把程序中大部分都删除了,就留一个延时程序了,真正原因还是没找到啊!

使用特权

评论回复
8
zhanghqi| | 2014-3-31 20:58 | 只看该作者
可以用char的要用int。

使用特权

评论回复
9
wyjie| | 2014-3-31 20:59 | 只看该作者
考虑狗、中断、和函数重入、堆栈溢出的问题。

使用特权

评论回复
10
jlyuan|  楼主 | 2014-3-31 20:59 | 只看该作者
加入:NOP NOP试试。

使用特权

评论回复
11
zhanghqi| | 2014-3-31 21:01 | 只看该作者
对的,楼主可以试试

使用特权

评论回复
12
jlyuan|  楼主 | 2014-3-31 21:01 | 只看该作者
搞定,多谢大家

使用特权

评论回复
13
lk07828| | 2014-4-1 09:02 | 只看该作者
jlyuan 发表于 2014-3-31 21:01
搞定,多谢大家

怎么搞定的,贴出来啊,楼主

使用特权

评论回复
14
WYT440| | 2014-4-1 09:26 | 只看该作者
本帖最后由 WYT440 于 2014-4-1 11:50 编辑
jlyuan 发表于 2014-3-31 20:55
void delayms(unsigned int tt) {
    unsigned int t;                    //   ?                       ...

不好意思说错了

使用特权

评论回复
15
yklstudent| | 2014-4-1 11:37 | 只看该作者
WYT440 发表于 2014-4-1 09:26
从这段延时代码来看,程序永远在这延时里面跑,出不来的;
tt,t都是unsigned无符号类型的,怎么减都不会 ...

无符号类型减不到0??????

使用特权

评论回复
16
WYT440| | 2014-4-1 11:56 | 只看该作者
yklstudent 发表于 2014-4-1 11:37
无符号类型减不到0??????

不好意思,搞错了  本人愚钝,多谢提醒!

使用特权

评论回复
17
xyz549040622| | 2014-4-1 14:54 | 只看该作者
看强哥的书学习的,程序风格像他,要改正

使用特权

评论回复
18
li880wert| | 2014-4-1 16:51 | 只看该作者
无符号的 在MDK或是其他IDE下不能简单判断 大于(小于0)0,要用0xff表示,这个方法 在WINDOWS或是LINUX下就正常的,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝