单片机中用写delay函数做延时和用定时器做延时有什么区别?

两者都可以起到延时的作用。写delay函数做延时,利用CPU处理很多循环,而每次处理一个循环就需要一个指令周期。定时器做延时时利用晶振的脉冲,计数器记录到溢出,而后可以做其他事情。在动态数码管输入扫描信号的时候为什么我们要用定时器做延时?这两种都延时方式有什么区别?

定时器的做法是在你的程序里还有其他事要做的情况下去设置的。也就是说设置了定时器后就可以去做其他事情了,delay就是不做事光用消耗的,消耗一定的时间后再去做其他事
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-01-05
利用循环处理的方式实现的延时,并不精确。
1、当中断发生时,CPU被打断先执行中断服务。导致执行时间变长。
2、使用高级语言时,编译的结果受优化等级等多方面因素干扰,难以计算。

3、在有MMU和Cache的MCU中,指令的执行速度还会受到缓存的影响。
利用定时器延时:
1、因为定时器累加与CPU无关,即使中断,仍然会保持计数。不受上述问题影响
2、缺点需要占用定时器资源。
3、功耗也会高一些本回答被提问者和网友采纳