看门狗(Watch Dog)是一个独立的定时器,当你开启看门狗后,需要在程序中看门狗定时器溢出前,对其进行 喂狗(复位)操作,否则看门狗会强制你的单片机重启,从头运行程序。
虽然Arduino核心库并未提供看门狗相关的API,但AVRGCC提供了相应的API支持,同样简单易用。需要注意的是Arduino bootloader并不支持看门狗,如果你直接使用看门狗定时器,可能会卡死在bootloader中。如果要使用看门狗建议使用ISP下载器直接下载程序。
在使用该API前,你需要调用相应的头文件wdt.h:
在wdt.h中,提供了3个看门狗API:
wdt_enable(timeout) //看门狗使能 并设置超时时间
wdt_disable() //看门狗禁止
wdt_reset() //看门狗复位
wdt_enable(timeout) 中timeout可使用如下常量:
通常情况下,在arduino中使用该API,你需要在setup中使能看门狗定时器,并在loop中按实际需要进行喂狗操作。示例代码如下:
void setup()
pinMode(13,OUTPUT);
wdt_enable(WDTO_2S); //开启看门狗,并设置溢出时间为两秒
void loop()
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
wdt_reset(); //喂狗操作,使看门狗定时器复位
本文来自“轻颦浅笑”用户投稿,该文观点仅代表作者本人,不代表华夏信息网立场,本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业用途。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站(文章、内容、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容,请发送邮件至1470280261#qq.com举报,一经查实,本站将立刻删除、维护您的正当权益。如若转载,请注明出处:http://www.xxxwhg.com/ls/86878.html