|
顾名思义看门狗的意思是放置出错,有看门狗电路的单片机,再进行程序设计时可以初始化看门狗参数,设定在规定的时间或者计数脉冲内实现复位看门狗俗称“喂狗”,程序正常运行时看门狗不会溢出,若程序跑飞满足不了喂狗的条件看门狗会溢出从而输出相应电平促使单片机复位。
上图是一个自带看门口的复位电路,这个在单片机程序中规定时间输出信号给复位电路,电路保持正常,若程序跑飞WDI接收不到信号就会输出信号到nRST给单片机复位脚使单片机复位。
单片机中看门狗的作用在这里就不详细说了,看门狗中断的功能之一是,防止单片机程序陷入预料之外的死循环或者单片机程序跑飞。
如何实现看门狗中断复位呢?首先我们要预估一段程序的最长运行时间,估算出来后,再加上一些时间余量,把这个时间作为看门狗的“喂狗”时间,在这个时间即将达到时,要及时“喂狗”(也就是把看门狗时间配置寄存器的值重新设置),这样看门狗会重新计时,程序继续正常运行。一旦程序跑飞或者进入一个预料之外的死循环,那么因为程序一直在这里运行,不会再运行到“喂狗”程序中,所以当看门狗寄存器的值达到预定值后,就产生了中断,这个中断让单片机复位。
|
|