STM32
直播中

杨火亭

8年用户 1016经验值
擅长:控制/MCU
私信 关注
[问答]

如何使用Arduino UNO的看门狗?

如何使用Arduino UNO的看门狗?

回帖(1)

肖锋

2021-9-23 14:33:51
看门狗定时器用避免电子设备出现故障造成死机,例如死循环。为此,看门狗作为一个物理定时器,在程序运行时不断的增加,并驱动一个中断, 如果达到某一个设定的值,就会复位微处理器。在正常操作下,定时器在程序流程中的定期设置为0, 但如果代码进入死循环,定时器复位不会发生,看门狗触发中断并重新启动。

    使用看门狗防止死机:Arduino为用户提供了方便操作的函数和宏,可以直接引入库:
#include     这个函数库提供了三个API函数供我们使用:
wdt_enable(timeout) //看门狗使能并设置超时时间
wdt_disable() //关闭
wdt_reset() //复位timeout可以使用wdt.h文件中定义的宏常量,也可以自定义时间;
通常情况下,需要在setup()函数中使能看门狗定时器,并在loop()中不断的喂狗防止溢出,官方给出的示例代码如下:
#include
void setup(){   
pinMode(13,OUTPUT);   
wdt_enable(WDTO_2S); //开启看门狗,并设置溢出时间为两秒}
void loop(){   
digitalWrite(13,HIGH);   
delay(100);   
digitalWrite(13,LOW);   
delay(100);   
wdt_reset(); //喂狗操作,使看门狗定时器复位}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分