编程中繁忙等待和定时器中断的优缺点是什么?

时间:2016-01-12 20:18:33

标签: c++ c embedded interrupt busy-waiting

实现合适时间延迟的可行方法是使用忙等待 使用忙等待或定时器中断方法编程有哪些优点和缺点?

3 个答案:

答案 0 :(得分:3)

可能有很多,我会尝试解决对我来说最重要的事情。

忙碌等待的好处:

  • 执行流程通常更容易理解,因此不易出错。
  • 在某些情况下可以更准确地确定时间

<强>缺点:

  • 不能执行其他代码(除了可能的其他中断例程)。
  • 浪费CPU时间:如果不必处理其他工作,设置一些节电状态并让定时器中断及时唤醒它仍然更有效。

答案 1 :(得分:2)

嵌入式设备繁忙等待的缺点是功耗增加。在忙碌的等待中,处理器正在全速运行,消耗功率而没有结果。大多数低功耗处理器能够在等待定时器中断时使处理器进入休眠状态,从而显着降低功耗。降低功耗=延长电池寿命。

答案 2 :(得分:2)

除非您的申请中没有其他任何事情要做,或者结果需要立即处理(这种情况相当罕见),否则您不想忙等待。它会占用可以用来做其他事情或睡觉的周期。

一个简单的例子就是说你正在制作一个通过UART与wifi芯片通信的wifi温控器。您的应用程序需要读取和处理温度,在新数据可用时更新,发送wifi消息,接收wifi消息以及从按钮按下接收更新等等。如果你忙着等待这些中的任何一个发生,那么除非是中断,否则你的恒温器不会做任何其他事情。