stc看门狗怎么计算

stc看门狗怎么计算,第1张

看门狗及其溢出时间 = (12 * Pre_scale *32768)/Oscillator Frequency 

先根据看门狗计数器的位数 和系统的时钟周期,算一下计满数需要的时间,就是说在这个时间内看门狗计数器是不会装满的,然后在这个时间内告诉它重新开始计数,就是把计数器清零,这个过程叫喂狗 。

这样隔一段时间喂一次狗,只要程序正常运行他就永远计不满,一旦出现死循环之类的故障,没有及时来清零计数器,就会导致装满了溢出,他就重启系统,这就是看门狗的看门原理。每种单片机的看门狗实现方法不尽相同,但是原理都一样,而且看门狗都是启动了之后就不能被关闭,只能系统复位才能关闭 。

设置“看门狗”的一般步骤如下:

1、设置“看门狗”相关寄存器, 启动“看门狗”。

2、隔一段时间清零一次,“喂狗”。

3、如果程序正常,一直运行;如果程序出错,没有按时“喂狗”,“看门狗”就在溢出的时候复位系统。

加到While循环的最前面就可以了。

define Pre_scale_Word 0x3c//0.68s

sfr WDT_CONTR 0xc1

..................................

while(1)

{

WDT_COUNTR=Pre_scale_Word

....................................

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11074973.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存