看门狗是一种计数器。当计数的值溢出时会自动复位MCU。(需要在溢出前“喂狗”,避免复位)
看门狗机制可以避免程序跑死(跑死时自动复位)
改变看门狗寄存器参数前必须解锁看门狗。freescale kinetis看门狗解锁步骤是向看门狗的解锁寄存器连续写入0XC520和0xD928.两次写入不能超过20个时钟周期。
注:程序需要烧至flash,否则复位后程序丢失。
初始化看门狗void WDOG_Init(void)
{
WDOG_UNLOCK = 0xC520;
WDOG_UNLOCK = 0xD928; //解锁看门狗寄存器(重新写入前必须解锁)两次写入不能超过20个时钟周期
WDOG_PRESC = 0x0700; //(7+1)分频
WDOG_TOVALH = 0x0110; //看门狗超时时间设置为3s
WDOG_TOVALL = 0x5E90;
}
|