AVR 看門(mén)狗WDT程序
很多人喜歡養寵物狗,很多單片鴨大俠則喜歡養看門(mén)狗,如果您也希望搞條AVR的看門(mén)狗養養,那么本節很適合您。
養看門(mén)狗的用意,在于用它監控系統:在程序本該運行的地方喂狗,如果程序卡死或跑飛,將不會(huì )運行到那,那樣狗沒(méi)有被喂到,餓死了,控制器復位,得以重啟從而進(jìn)行控制。
本節演示功能:養一只AVR內部看門(mén)狗,及時(shí)喂狗,狗不餓死,AVR單片鴨不復位;不及時(shí)喂狗,狗餓死了,AVR單片鴨就復位。
本節的程序設計較為簡(jiǎn)單,旨在給出養狗、喂狗,不讓狗餓死的簡(jiǎn)單示例。實(shí)際應用時(shí)考慮情況較多的要注意什么時(shí)候喂狗,放狗。
硬件設計

AVR主控電路原理圖

LED控制電路原理圖
軟件設計
//目標系統:基于A(yíng)VR單片機
//應用軟件:ICCAVR
/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
實(shí)驗內容:
觀(guān)察喂狗與不喂狗的區別,使用PB口的LED指示燈做狀態(tài)指示。
----------------------------------------------------------------------
硬件連接:
將PB口的LED指示燈使能開(kāi)關(guān)切換到"ON"狀態(tài)。
----------------------------------------------------------------------
注意事項:
(1)若有加載庫程序,請將光盤(pán)根目錄下的“庫程序”下的“ICC_H”文件夾拷到D盤(pán)
(2)請詳細閱讀:光盤(pán)根目錄下的“產(chǎn)品資料開(kāi)發(fā)板實(shí)驗板SMK系列SMK1632說(shuō)明資料”
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include
#include "D:ICC_HCmmICC.H"
#define DISP_DDRDDRB
#define DISP_PORTPORTB
/*--------------------------------------------------------------------
程序名稱(chēng):看門(mén)狗WDT初始化程序
程序功能:
注意事項:
提示說(shuō)明:
輸入:
返回:
--------------------------------------------------------------------*/
void wdt_init(void)
{
asm("wdr");//clr wdt
WDTCR=0x
}
/*--------------------------------------------------------------------
程序名稱(chēng):
程序功能:
注意事項:
提示說(shuō)明:
輸入:
返回:
--------------------------------------------------------------------*/
void main(void)
{
uint8 i;
DISP_DDR = 0XFF;
wdt_init();
while(1)
{
DISP_PORT++; //數據顯示向上加,作AVR正常運行的指示
asm("wdr"); //喂狗,去除此句將導致狗餓死,AVR復位
delay50ms(20);
}
}
系統調試
在A(yíng)VR的運行程序中設置讓PB顯示端口自加。若AVR正常工作,及時(shí)喂狗,則單片機設置的顯示端口正常自加。去除語(yǔ)句:asm("wdr");單片機不斷復位,程序得不到允許,自加數據沒(méi)有顯示往上加。
評論