[51单片机] 程序单步正常运行,全速运行异常!!!

[复制链接]
13726|19
 楼主| huhaomcu 发表于 2013-11-12 10:24 | 显示全部楼层 |阅读模式
不知大家有没有遇到过程序单步调试能正常运行,但是烧到单片机里面全速运行就不能正常运行了!!!一般会是什么原因引起的呢!!!大家来说说!!!!!!!!!!!!!!!
four_zhg 发表于 2013-11-12 10:52 | 显示全部楼层
有没有试过在仿真时全速运行正不正常?一般在仿真的全速运行正常没问题,烧写进单片机也不会有问题
chenbb8 发表于 2013-11-12 11:01 | 显示全部楼层
有软件延时是么,赶脚像是时序上的问题
小小财迷 发表于 2013-11-12 11:06 | 显示全部楼层
我遇到过,当时是延时有问题,我的延时子函数用定时器做的,中断设置有问题,中断嵌套产生的
Imakey 发表于 2013-11-12 11:31 来自手机 | 显示全部楼层
我遇到过,我的情况是和编译器优化有关,有些变量要加volatile关键字修饰,否则会被编译器优化掉
river1972 发表于 2013-11-12 12:27 | 显示全部楼层
多半是延时程序不正常
 楼主| huhaomcu 发表于 2013-11-12 13:05 | 显示全部楼层
Imakey 发表于 2013-11-12 11:31
我遇到过,我的情况是和编译器优化有关,有些变量要加volatile关键字修饰,否则会被编译器优化掉 ...

这种原因占大多数,而且不容易发现!!!不过我还没遇到过,不过我周围有人遇到过这种现象!!

评分

参与人数 1威望 +1 收起 理由
borrow1988 + 1 赞一个!

查看全部评分

 楼主| huhaomcu 发表于 2013-11-12 13:07 | 显示全部楼层
chenbb8 发表于 2013-11-12 11:01
有软件延时是么,赶脚像是时序上的问题

确实是时序上的问题,但要注意的是有时出现时序上的问题不一定是由于软件延时或其它方式的延时,也有可能是程序其它方面的错误!!
 楼主| huhaomcu 发表于 2013-11-12 13:08 | 显示全部楼层
问题已找到,是由于我做了一个不应该做的读取操作,导致了程序整体时序上出现了问题!!!!
 楼主| huhaomcu 发表于 2013-11-12 13:10 | 显示全部楼层
希望大家能接着说说遇到的这种情况与解决的方法,感觉像出现这种单步正常,全速异常的情况在单片机编程中还是比较容易出现的,希望大家能各抒己见,帮助他人,也提醒自己以后不要再犯同样的错误!!!
zd420325 发表于 2013-11-12 14:53 | 显示全部楼层
请查看《程序调试黑宝书》
江枫渔火 发表于 2013-11-12 15:22 | 显示全部楼层
是的,这情况时有发生。三言两语说不清楚,自己去调试,去琢磨,会有发现
sidafuzhihe 发表于 2013-11-12 19:42 | 显示全部楼层
呵呵,可以肯定代码逻辑没有问题,时序出问题了
胡斯哲 发表于 2013-11-12 22:43 | 显示全部楼层
速度快乐 硬件可能跟不上来
yanyinzhong 发表于 2013-11-13 09:19 | 显示全部楼层
注意时间的控制,比如我当初做数码管时忘了消影,结果也这样
 楼主| huhaomcu 发表于 2013-11-13 20:34 | 显示全部楼层
才解决了一个单步可以,全速运行异常的情况,今天这种情况又来了,高速通信对时序要求严格啊!!!又得慢慢调了!!!大家接着说咧!!!
borrow1988 发表于 2014-11-12 20:18 | 显示全部楼层
volatile 问题
恩哥 发表于 2015-12-11 13:21 | 显示全部楼层
哈哈非常好的问题,mark!
caoyunfei2012 发表于 2016-1-28 19:39 | 显示全部楼层
可能供电不够,我用DSP碰到这个问题。当时为了方便用移动电源给DSP供电,单步调试没问题,全速就是不行,后来发现移动电源当时电压不够
jaygeng 发表于 2016-12-22 10:57 | 显示全部楼层

请问下,为什么volatile问题会造成这种现象?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

509

帖子

3

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