STM32 窗口看门狗中的喂狗 *** 作具体是指什么

STM32 窗口看门狗中的喂狗 *** 作具体是指什么,第1张

是指清空看门狗计数器

看门狗实际上就是一个定时计数器,用来防止程序发生意外而设置的一个监测装置,只要看门狗功能打开,看门狗计数器的计数值是会不停的增加,程序正常运行时,需要在看门狗计数器达到最大值之前(就是看门狗最大计数时间之内)将其清空,使其重新开始计数,这就是“喂狗”。

如果程序跑飞,或者发生什么意外状况,而使得“喂狗” *** 作不能正常进行,看门狗计数器会不断增加,直到溢出,然后单片机复位,从而避免单片机跑飞以后失控而导致死机。

开机时,如果按下了 K1,即可启动T0。

T0定时中断,即可自动喂狗,程序即可正常执行while中的内容。

其中就有:

LED2=1DelayMs(100)

LED2=0DelayMs(100)

即:LED2就闪烁。

按下 K2,就关闭了 T0,停止了喂狗。

单片机系统,16ms 后,自动复位。

复位后,如果没有按下 K1,不能自动喂狗,就会频繁的自动复位。

频繁的复位,总是执行开始处的:

LED1=0 DelayMs(100)

LED1=1 DelayMs(100)

所以,就是按key2 LED1闪烁。

对于裸奔的程序,最理想的看门狗是程序只在主循环中加一个喂狗,计算主循环执行一个循环的最长时间的1.5倍作为看门狗定时器的时间,这样只要程序超出了预计的时间未回到主循环,就会自动复位。这样的程序尽量不要让中断服务函数占用太多的处理器资源,将耗费处理器资源的工作放在程序的主循环中,可以更有效的利用看门狗。


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

原文地址: http://outofmemory.cn/yw/11858346.html

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

发表评论

登录后才能评论

评论列表(0条)

保存