问题是:
我应该如何配置看门狗定时器,如果我有3个任务不同的优先级和不同的执行时间?
说:
任务1:最高优先级,Exec的。时间= 5毫秒
任务2:中优先级,Exec的。时间= 10毫秒
任务3:优先级最低,Exec的。时间= 15毫秒
看这个定义中的看门狗定时器是用于检测和从计算机故障中恢复的电子计时器。在正常操作期间,计算机定期复位看门狗定时器,以防止它经过时,或“超时”
所以,你当你是肯定没有的3个任务运行时设置看门狗定时器的值,即触发看门狗。为了更准确,你复位定时器,当你确定所有的任务都在运行。当一个任务停止由于未知的原因,要触发看门狗(你可以阅读更多关于它)
现在真实的东西,应该是什么时间,看门狗定时器?你需要的时候,你要重新启动的程序设置一个计时器,因此包括所有等待时间的任务,在任务延迟和检查最坏情况下将至少执行一次所有任务的时间(最大时间)。然后设置定时器的值超过这个最大值多一点点。
要做到这一点,正确的方法是
如果您有任何工人的任务或监视任务挂起,它最终将阻止看门狗任务和看门狗将到期。你要确保看门狗当所有任务都正常运行,只有重新触发。用最简单的任务间通信意味着你的RTOS提供,使其尽可能稳定抵抗崩溃。