[MCU] 延时时间对整个运行系统的影响

[复制链接]
2533|8
 楼主| Emily_1105 发表于 2014-11-20 09:17 | 显示全部楼层 |阅读模式
在实际的程序中,经常会遇到延时程序,请问这个延时程序对于整个单片机的运行系统有什么影响吗?是不是延时程序不当,容易造成其他模块的运行错误呢。谢谢了。
Ketose 发表于 2014-11-20 09:29 | 显示全部楼层
楼主是不是说的软件延时?
软件延时由于其自身是靠CPU指令不停的循环来延时,有很大的不确定性,比如CPU频率的依赖性,在延时的时候有中断进来,都会对软件延时造成很大的影响,致使延时不准。
所有如果有些外设通讯对时序要求很高的话,就不能彩用软件延时,而是应该用定时器延时,精确很多。
ayb_ice 发表于 2014-11-20 09:50 | 显示全部楼层
会造成系统阻塞,影响实时性,CPU效率低下
ningling_21 发表于 2014-11-20 10:02 | 显示全部楼层
错误一般不会,但会造成系统响应变慢,例如 按键没反应等等
coody 发表于 2014-11-20 14:13 | 显示全部楼层
除了初始化,进入主循环后基本不用指令延时。那些比较大的控制系统,超过100个各种延时。。。。
受不了了 发表于 2014-11-20 14:32 | 显示全部楼层
路口红绿灯某个方向的车流不断,另外的方向肯定容易堵车
QuakeGod 发表于 2014-11-20 22:09 | 显示全部楼层
短的时间用延时,比如对某些慢速IO操作时,需要延时几个时钟,就只能用延时,加几个NOP,
长的时间用定时,除上面之外的,都应该用定时实现。
另外,定时用好了,可以实现很多功能呢,
举个例子,
分别有A,B两个任务需要定时运行,每1mS运行一次,每次运行0.1mS到0.2mS,要求定时精度0.01mS。
这样的话,如果做一个1mS的定时器,先运行A,接着再运行B,就会造成B的启动时刻不准,有相位抖动。如果将B提到前面,则任务A就会有抖动。
那么实际的方法,可以做一个0.5mS的定时器,奇数次调用A,偶数次调用B,这样两个任务的定时间隔和精度都能保证了。
如果有更多个任务,定时间隔要求不同,也可以合理安排。只要处理器能力满足,即可都满足。
慢慢学 发表于 2014-11-21 08:24 | 显示全部楼层
最好不要用长延时,短暂的延时可以用,我最近做的东西就是因为延时的关系,导致数据延迟特别大,让整个系统特别卡!!
jjeemm77 发表于 2014-11-21 09:55 | 显示全部楼层
系统是时钟运行的!…
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

51

帖子

0

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