如何选择合适的看门狗定时器值

时间:2018-07-31 23:20:21

标签: embedded avr rtos watchdog

问题是:

如果我有3个具有不同优先级和不同执行时间的任务,应该如何配置看门狗定时器?

说:

任务1:最高优先级,执行时间= 5毫秒

任务2:中等优先级,执行。时间= 10毫秒

任务3:最低优先级,执行时间= 15毫秒

2 个答案:

答案 0 :(得分:3)

执行此操作的正确方法是

  1. 创建一个特殊的看门狗任务,该任务将循环地等待3个信号量/互斥体/消息队列(依次)
  2. 从您的工作程序任务中提供这三个信号量(每个任务提供了看门狗任务的一个信号量)
  3. 将看门狗任务循环中的看门狗计时器重新设置为所有辅助任务(最坏情况)的循环计时总和加上一些裕量。

如果您的任何辅助任务或看门狗任务挂起,它将最终阻止看门狗任务,并且看门狗将过期。您要确保仅在所有任务正常运行时才重新触发看门狗。使用最简单的任务间通信意味着您的RTOS提供了使之在崩溃时尽可能强大的功能。

答案 1 :(得分:-1)

看看这个定义 看门狗计时器是一种电子计时器,用于检测计算机故障并从计算机故障中恢复。在正常操作期间,计算机会定期重置看门狗计时器,以防止其丢失或“计时”

因此,您可以设置看门狗定时器值,当您确定3个任务均未运行时触发看门狗。为了更准确,请在确定所有任务都在运行时重置计时器。当单个任务由于未知原因而停止时,您想触发看门狗(可以阅读更多内容)

现在真相了,看门狗定时器应该几点钟了?您需要在重新启动程序时设置一个计时器,因此包括所有任务等待时间,任务延迟以及检查至少要执行一次所有任务的最坏情况时间(最大时间)。然后将计时器值设置为比此最大值大一点。