微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机程序中为什么要禁止看门狗

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

时间:11-10 来源:互联网 点击:
单片机程序中为什么要禁止看门狗

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

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top