单片机程序中为什么要制止看门狗
设置看门狗守时器的时分,必须先封闭它才干设置,否则在敞开状态下设置看门狗守时器可能会出现问题。一般单片机和DSP、还有ARM芯片里设置内部功用的时分,都是先封闭这个功用,再设置。中止也是相似的,咱们一般它把中止悉数封闭了,然后在程序里边进一步设置。
要搞清楚封闭看门狗守时器的深层次原因,咱们先得理解其用处:
它其实便是一个守时器,这个守时器溢出是会发生一个中止呼应,这个中止呼应对应的中止服务便是跳回程序最初,也便是复位。发动看门狗后,要守时在程序中把看门狗的计数器清0,以避免它进入中止然后复位,这就叫做喂狗。
看门狗守时器常用在程序很简单跑飞的情况下(比方等候超时,意外进入死循环等)——在发动看门狗守时器的前提下,假如程序跑飞,不必怕,等计数器WTCNT溢出时,程序会主动复位。但在一般的程序中是不太可能会跑飞的,所以大都情况下咱们封闭看门狗,是因为引入了看门狗之后就多了守时计数值处理的一些代码,这增加了程序的复杂性。