原创 单片机程序中为什么要禁止看门狗

2011-8-9 16:22 4652 7 7 分类: MCU/ 嵌入式

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

2011-01-09 14:56:35| 分类: ARM学习 | 标签:单片机程序中为什么要禁止看门狗 |字号 订阅

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

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

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

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

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条