WDT也是一个定时器。只是当WDT定时器定时到了的时候,他的作用是使MCU产生复位。这个复位就叫看门狗复位。这个主要是防止MCU进入死循环或者程序跑飞了后,MCU强制复位进入正常状态。
使用WDT的原则上是,在WDT定时到之前将WDT计数器清零以防止WDT产生复位。如LS所说,定时器设定为0.5s的话,假如清除WDT复位放在定时器处理里面的话,那么WDT定时时间一般要长于定时器0.5s。因为WDT是内部RC震荡,一般受温度电压影响可能有一点点误差。为了保险,一般都设置大于定时器长度。至于为什么要重置WDT,就是正常情况下清除WDT计数防止WDT溢出复位。而程序异常后,可能程序不能按照正常流程清除WDT计数器的话,WDT定时到溢出后就会强制MCU复位而将程序回复正常。
|