延时程序能调用,延时无效

[复制链接]
6134|26
qjmxxgui 发表于 2010-10-19 21:51 | 显示全部楼层
谁说的,每次调用都会被重新赋值。 5# zjswuyunbo
lzf6929 发表于 2010-10-19 20:57



他的意思应该是说,在一次调用中,c减了一次之后的for(···b···)循环,b没有给初值吧。。。
liuyuxiier 发表于 2010-10-20 08:55 | 显示全部楼层
楼主你的延时程序并不是不起作用,而是起不到你预想的作用,如果你修改的B值范围不是很大,那你根本就感觉不出来,要用仪器才行。
你的第一句给C赋值是没有关系的C是可以循环110次的,
但是b那个循环就有问题了,看看你的程序
for(;b>0;b--)
第一次循环结束后,b=0,而第二次循环开始你并没有再给他赋值,所以这个循环直接判断下就结束了,所以没有起到多大的延时作用。
修改方法可以可以在循环中给B初值,或者和第一个循环的位置换一下。
 楼主| lzf6929 发表于 2010-10-20 21:43 | 显示全部楼层
是这问题,第二次内循环的b=0,内循环不能循环。
谢谢大家的帮助。
qjmxxgui 发表于 2010-10-23 10:56 | 显示全部楼层
但是我觉得在中断里延时没太大问题吧?如果延时的时候触发中断,优先级一样,难到中断会有效?我们做摇摇棒的时候不是一个中断里面有时要好几个延时?
原野之狼 发表于 2010-10-23 14:08 | 显示全部楼层
1、不要在中断里调用延时函数。
2、在中断内和中断外调用同一个函数,请注意重入问题。
3、尽量避免全局变量和局部变量同名。
4、延时函数内部显然不对,自己跟踪一下就知道了。
qjmxxgui 发表于 2010-10-24 00:29 | 显示全部楼层
我还是对不要在中断里调用延时函数不理解。。。
原野之狼 发表于 2010-10-24 00:46 | 显示全部楼层
LS 因为那样破坏了系统的实时性
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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