发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: lzf6929
手机看帖
扫描二维码
随时随地手机跟帖
21
qjmxxgui| | 2010-10-19 21:51 | 只看该作者 回帖奖励 |倒序浏览
谁说的,每次调用都会被重新赋值。 5# zjswuyunbo
lzf6929 发表于 2010-10-19 20:57



他的意思应该是说,在一次调用中,c减了一次之后的for(···b···)循环,b没有给初值吧。。。

使用特权

评论回复
22
liuyuxiier| | 2010-10-20 08:55 | 只看该作者
楼主你的延时程序并不是不起作用,而是起不到你预想的作用,如果你修改的B值范围不是很大,那你根本就感觉不出来,要用仪器才行。
你的第一句给C赋值是没有关系的C是可以循环110次的,
但是b那个循环就有问题了,看看你的程序
for(;b>0;b--)
第一次循环结束后,b=0,而第二次循环开始你并没有再给他赋值,所以这个循环直接判断下就结束了,所以没有起到多大的延时作用。
修改方法可以可以在循环中给B初值,或者和第一个循环的位置换一下。

使用特权

评论回复
23
lzf6929|  楼主 | 2010-10-20 21:43 | 只看该作者
是这问题,第二次内循环的b=0,内循环不能循环。
谢谢大家的帮助。

使用特权

评论回复
24
qjmxxgui| | 2010-10-23 10:56 | 只看该作者
但是我觉得在中断里延时没太大问题吧?如果延时的时候触发中断,优先级一样,难到中断会有效?我们做摇摇棒的时候不是一个中断里面有时要好几个延时?

使用特权

评论回复
25
原野之狼| | 2010-10-23 14:08 | 只看该作者
1、不要在中断里调用延时函数。
2、在中断内和中断外调用同一个函数,请注意重入问题。
3、尽量避免全局变量和局部变量同名。
4、延时函数内部显然不对,自己跟踪一下就知道了。

使用特权

评论回复
26
qjmxxgui| | 2010-10-24 00:29 | 只看该作者
我还是对不要在中断里调用延时函数不理解。。。

使用特权

评论回复
27
原野之狼| | 2010-10-24 00:46 | 只看该作者
LS 因为那样破坏了系统的实时性

使用特权

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

本版积分规则