相關(guān)推薦
您可能對(duì)下面課程感興趣
Arduino視頻教程基礎(chǔ)篇

75小節(jié)已有138484人學(xué)過(guò)

在Arduino中使用看門(mén)狗定時(shí)器
發(fā)布時(shí)間:2022-03-12 08:41 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 小劉2175 閱讀: 3590
看門(mén)狗(Watch Dog)是一個(gè)獨(dú)立的定時(shí)器,當(dāng)你開(kāi)啟看門(mén)狗后,需要在程序中看門(mén)狗定時(shí)器溢出前,對(duì)其進(jìn)行 喂狗(復(fù)位)操作,否則看門(mén)狗會(huì)強(qiáng)制你的單片機(jī)重啟,從頭運(yùn)行程序。

雖然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可使用如下常量:
序號(hào)
常量
定義
1
WDTO_15MS
看門(mén)狗定時(shí)器15ms超時(shí)
2
WDTO_30MS
看門(mén)狗定時(shí)器30ms超時(shí)
3
WDTO_60MS
看門(mén)狗定時(shí)器60ms超時(shí)
4
WDTO_120MS
看門(mén)狗定時(shí)器120ms超時(shí)
5
WDTO_250MS
看門(mén)狗定時(shí)器250ms超時(shí)
6
WDTO_500MS
看門(mén)狗定時(shí)器500ms超時(shí)
7
WDTO_1S
看門(mén)狗定時(shí)器1S超時(shí)
8
WDTO_2S
看門(mén)狗定時(shí)器2S超時(shí)
9
WDTO_4S
看門(mén)狗定時(shí)器4S超時(shí)
10
WDTO_8S
看門(mén)狗定時(shí)器8S超時(shí)


通常情況下,在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]
Arduino視頻教程基礎(chǔ)篇
我要自學(xué)網(wǎng)商城 ¥40 元
進(jìn)入購(gòu)買(mǎi)
文章評(píng)論
0 條評(píng)論 按熱度排序 按時(shí)間排序 /350
添加表情
遵守中華人民共和國(guó)的各項(xiàng)道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對(duì)下面課程感興趣
Arduino視頻教程基礎(chǔ)篇

75小節(jié)已有138484人學(xué)過(guò)

分類選擇:
電腦辦公 平面設(shè)計(jì) 室內(nèi)設(shè)計(jì) 室外設(shè)計(jì) 機(jī)械設(shè)計(jì) 工業(yè)自動(dòng)化 影視動(dòng)畫(huà) 程序開(kāi)發(fā) 網(wǎng)頁(yè)設(shè)計(jì) 會(huì)計(jì)課程 興趣成長(zhǎng) AIGC