雖然Arduino核心庫并未提供看門狗相關(guān)的API,但AVRGCC提供了相應(yīng)的API支持,同樣簡單易用。
需要注意的是Arduino bootloader并不支持看門狗,如果你直接使用看門狗定時器,可能會卡死在bootloader中。如果要使用看門狗建議使用ISP下載器直接下載程序。
在使用該API前,你需要調(diào)用相應(yīng)的頭文件wdt.h:
[mw_shl_code=c,true]#include <avr/wdt.h>[/mw_shl_code]
在wdt.h中,提供了3個看門狗API:
[mw_shl_code=c,true]wdt_enable(timeout) //看門狗使能 并設(shè)置超時時間
wdt_disable() //看門狗禁止
wdt_reset() //看門狗復(fù)位[/mw_shl_code]
wdt_enable(timeout) 中timeout可使用如下常量:
通常情況下,在arduino中使用該API,你需要在setup中使能看門狗定時器,并在loop中按實(shí)際需要進(jìn)行喂狗操作。示例代碼如下:
[mw_shl_code=cpp,true]
#include <avr/wdt.h>
void setup()
{
pinMode(13,OUTPUT);
wdt_enable(WDTO_2S); //開啟看門狗,并設(shè)置溢出時間為兩秒
}
void loop()
{
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
wdt_reset(); //喂狗操作,使看門狗定時器復(fù)位
}[/mw_shl_code]
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。