Answers:
看门狗定时器(WDT)默认情况下处于打开状态,这在更复杂的应用程序中很有用,但会使很多新手失望。他们通常不会在代码中服务WDT,也不会包含中断服务程序(ISR)来处理WDT事件,因此,当芯片不断复位时,他们会感到非常沮丧。此外,示例程序在大多数情况下都不是为了演示WDT,因此已将其关闭。
编辑:看门狗定时器可以被命名为“死人的开关”。它的默认行为是重置微控制器,除非固件定期让其知道一切运行正常。这就是所谓的“喂狗”或“踢狗”。这样,如果您的固件陷入了循环或以其他方式停止按预期运行,则看门狗将无法供电,并将芯片复位(希望恢复到全新的工作状态)。
您也可以将WDT用作定期中断来执行其他任务,无论您能想到什么。您只需要编写相关的ISR。
除了Samuel关于人们不小心绊倒WDT的观点外,还有另一个重要原因也是为什么最初应该禁用它。
即使您的应用程序通常能够正确重置计时器,也可能在初始化代码期间无法重置计时器,原因有两个:
因此,即使您从未启用 WDT,也要禁用它,这是一个好习惯。
如果您确实想使用它,则可以在启动中断之前立即重新启用它,这是初始化代码的最后一步。
int _system_pre_init(void)
函数执行初始化之前将其禁用main