1、看门狗与作用
我们有时会碰到电脑死机的情况 ,这时需要人工进行重启。但MCU也会有死循环的时候。这个时候需要对MCU进行重启,或是执行特殊的操作。看门狗程序就是一种监控程序 ,监测到MCU发生严重错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级,可以防止程序在线运行时候出现死循环。
2、看门狗程序原理
看门狗的程序原理还是比较简单的。它利用一个使用系统时钟的定时器,记录程序执行的时长。当程序执行的时长超过设置的值时,会产生一个重启的命令,或是执行特殊的操作。
当程序正常执行时 ,每一个执行循环,程序都会对计时器进行复位(喂狗),使看门狗程序不会被确发。当程序陷入了死循环时,将无法执行计时器的复位操作。这样看门狗超过时间没人投喂,就会触发重启动作了。
3、看门狗程序设计
本次看门狗程序目标为:
1)设置看门狗时间启动时间为5s。
2)主程序为一个delay函数, 初始循环值为1秒,然后对计时器进行复位。每一次循环后等待时间增加1秒。
3)当循环到第5次时,复位时间要大于看门狗启动时间。看门狗将被触发。
4、看门狗程序代码
int counter1 = 0; //循环计时值,用于计算等待时长
hw_timer_t *tim1 = NULL; //声明看门狗指针变量
int counter1 = 0; //循环计时
// 中断函数
void tim1Interrupt()
{
Serial.println(&#