找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6485|回复: 2
收起左侧

使用Arduino UNO的看门狗

[复制链接]
ID:419881 发表于 2018-11-2 20:32 | 显示全部楼层 |阅读模式
看门狗定时器用避免电子设备出现故障造成死机,例如死循环。为此,看门狗作为一个物理定时器,在程序运行时不断的增加,并驱动一个中断, 如果达到某一个设定的值,就会复位微处理器。在正常操作下,定时器在程序流程中的定期设置为0, 但如果代码进入死循环,定时器复位不会发生,看门狗触发中断并重新启动。

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

回复

使用道具 举报

ID:420284 发表于 2018-11-3 22:22 | 显示全部楼层
学习了
回复

使用道具 举报

ID:521352 发表于 2019-4-29 23:04 | 显示全部楼层
好厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表