说起看门狗这个名字还是蛮有趣的,它的作用就是在主人走神的时候咬他一口,把他咬醒。实际点来说,就是当MCU运行过程中,在某处进入了死循环,或者受到干扰造成PC指针指向了无程序区,都会导致程序没反应,按键失效,屏幕内容不变等问题。这时如果正确使用了看门狗,就会让PC指针复位,从头开始执行程序。
看门狗复位的应用技巧包括三个方面:
一: 判断是否需要使用。 如果要使用看门狗的话,需要做一些寄存器的配置,在程序区的某些地方也要加入喂狗指令来防止看门狗复位,有一定的工作量,所以用与不用需要考虑一下。能不使用看门狗的场合,要求是系统即使死机也问题不大,等待人过来断电复位即可的情况。但是这种情况已经很少了,所以绝大多数情况下看门狗都要加上。比如有温控功能的电热水器,假如电加热已经启动,但是系统死机了,温控失效,电加热也不会关闭,这时水温就会一直升高,直到水被蒸干,然后电加热损坏或引发火灾,或者人被开水烫伤。这时有看门狗复位,系统就会恢复正常,检测到温度够了,就会关闭电加热的。
二、保证看门狗工作正常。看门狗除了进行寄存器配置之外,喂狗函数的位置也很重要,没处理好就会发生不该复位时复位了,或改复
1