打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在Arduino中使用看门狗定时器
看门狗(Watch Dog)是一个独立的定时器,当你开启看门狗后,需要在程序中看门狗定时器溢出前,对其进行 喂狗(复位)操作,否则看门狗会强制你的单片机重启,从头运行程序。

虽然Arduino核心库并未提供看门狗相关的API,但AVRGCC提供了相应的API支持,同样简单易用。
需要注意的是Arduino bootloader并不支持看门狗,如果你直接使用看门狗定时器,可能会卡死在bootloader中。如果要使用看门狗建议使用ISP下载器直接下载程序。

在使用该API前,你需要调用相应的头文件wdt.h:
[C] 纯文本查看 复制代码
1
#include <avr/wdt.h>


在wdt.h中,提供了3个看门狗API:
[C] 纯文本查看 复制代码
1
2
3
wdt_enable(timeout) //看门狗使能 并设置超时时间
wdt_disable() //看门狗禁止
wdt_reset() //看门狗复位

wdt_enable(timeout) 中timeout可使用如下常量:
序号
常量
定义
1
WDTO_15MS
看门狗定时器15ms超时
2
WDTO_30MS
看门狗定时器30ms超时
3
WDTO_60MS
看门狗定时器60ms超时
4
WDTO_120MS
看门狗定时器120ms超时
5
WDTO_250MS
看门狗定时器250ms超时
6
WDTO_500MS
看门狗定时器500ms超时
7
WDTO_1S
看门狗定时器1S超时
8
WDTO_2S
看门狗定时器2S超时
9
WDTO_4S
看门狗定时器4S超时
10
WDTO_8S
看门狗定时器8S超时


通常情况下,在arduino中使用该API,你需要在setup中使能看门狗定时器,并在loop中按实际需要进行喂狗操作。示例代码如下:
[C++] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
#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(); //喂狗操作,使看门狗定时器复位
}


最后附带AVRGCC 的手册:http://www.arduino.cn/avrgcc/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
看门狗定时器的设计、工作原理及看门狗定时器的操作
三菱QCPU模块扫描执行程序的处理步骤
STC89C5X单片机“看门狗”原理、详解和演示程序
什么是看门狗(watchdog)
MSP430看门狗定时器的寄存器定义
MSP430学习小结1
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服