看门狗(Watch Dog)是一个独立的定时器,当你开启看门狗后,需要在程序中看门狗定时器溢出前,对其进行 喂狗(复位)操作,否则看门狗会强制你的单片机重启,从头运行程序。
虽然Arduino核心库并未提供看门狗相关的API,但AVRGCC提供了相应的API支持,同样简单易用。需要注意的是Arduino bootloader并不支持看门狗,如果你直接使用看门狗定时器,可能会卡死在bootloader中。如果要使用看门狗建议使用ISP下载器直接下载程序。
在使用该API前,你需要调用相应的头文件wdt.h:
#include <avr/wdt.h>
在wdt.h中,提供了3个看门狗API:
wdt_enable(timeout) //看门狗使能 并设置超时时间
wdt_disable() //看门狗禁止
wdt_reset() //看门狗复位
wdt_enable(timeout) 中timeout可使用如下常量:
| 序号 |
常量 |
定义 |
| 1 |
WDTO_15MS |
看门狗定时器15ms超时 |
| 2 |
WDTO_30MS |
看门狗定时器30ms |

本文介绍了如何在Arduino中使用AVRGCC提供的看门狗API,包括wdt_enable、wdt_disable和wdt_reset函数,以及如何在setup和loop中正确配置和喂狗以防止单片机重启。
最低0.47元/天 解锁文章
1999

被折叠的 条评论
为什么被折叠?



