(转)单片机程序中为什么要禁止看门狗

原文地址:http://zqwt.012.blog.163.com/blog/static/1204468420110925635503/

 

设置看门狗定时器的时候,必须先关闭它才能设置,否则在开启状态下设置看门狗定时器可能会出现问题。 一般单片机和DSP、还有ARM芯片里设置内部功能的时候,都是先关闭这个功能,再设置。中断也是类似的,我们通常它把中断全部关闭了,然后在程序里面进一步设置。

 

要搞清楚关闭看门狗定时器的深层次原因,我们先得明白其用途:

它其实就是一个定时器,这个定时器溢出是会产生一个中断响应,这个中断响应对应的中断服务就是跳回程序开头,也就是复位。启动看门狗后,要定时在程序中把看门狗的计数器清0,以防止它进入中断然后复位,这就叫做喂狗。

 

看门狗定时器常用在程序很容易跑飞的情况下(比如等待超时,意外进入死循环等)——在启动看门狗定时器的前提下,如果程序跑飞,不用怕,等计数器WTCNT溢出时,程序会自动复位。但在一般的程序中是不太可能会跑飞的,所以多数情况下我们关闭看门狗,是因为引入了看门狗之后就多了定时计数值处理的一些代码,这增加了程序的复杂性。

原文地址:https://www.cnblogs.com/sheshiji/p/3624447.html