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