单片机中用写delay函数做延时和用定时器做延时有什么区别?
两者都可以起到延时的作用。写delay函数做延时,利用CPU处理很多循环,而每次处理一个循环就需要一个指令周期。定时器做延时时利用晶振的脉冲,计数器记录到溢出,而后可以做...
两者都可以起到延时的作用。写delay函数做延时,利用CPU处理很多循环,而每次处理一个循环就需要一个指令周期。定时器做延时时利用晶振的脉冲,计数器记录到溢出,而后可以做其他事情。在动态数码管输入扫描信号的时候为什么我们要用定时器做延时?这两种都延时方式有什么区别?
展开
2个回答
展开全部
利用循环处理的方式实现的延时,并不精确。
1、当中断发生时,CPU被打断先执行中断服务。导致执行时间变长。
2、使用高级语言时,编译的结果受优化等级等多方面因素干扰,难以计算。
3、在有MMU和Cache的MCU中,指令的执行速度还会受到缓存的影响。
利用定时器延时:
1、因为定时器累加与CPU无关,即使中断,仍然会保持计数。不受上述问题影响
2、缺点需要占用定时器资源。
3、功耗也会高一些
1、当中断发生时,CPU被打断先执行中断服务。导致执行时间变长。
2、使用高级语言时,编译的结果受优化等级等多方面因素干扰,难以计算。
3、在有MMU和Cache的MCU中,指令的执行速度还会受到缓存的影响。
利用定时器延时:
1、因为定时器累加与CPU无关,即使中断,仍然会保持计数。不受上述问题影响
2、缺点需要占用定时器资源。
3、功耗也会高一些
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询