新聞中心

AVR 看門(mén)狗WDT程序

作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
系統(tǒng)功能

本文引用地址:http://m.butianyuan.cn/article/201611/315549.htm

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

硬件設(shè)計(jì)


AVR主控電路原理


LED控制電路原理圖

軟件設(shè)計(jì)

//目標(biāo)系統(tǒng):基于A(yíng)VR單片機(jī)
//應(yīng)用軟件:ICCAVR

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
實(shí)驗(yàn)內(nèi)容:
觀(guān)察喂狗與不喂狗的區(qū)別,使用PB口的LED指示燈做狀態(tài)指示。
----------------------------------------------------------------------
硬件連接:
將PB口的LED指示燈使能開(kāi)關(guān)切換到"ON"狀態(tài)。
----------------------------------------------------------------------
注意事項(xiàng):
(1)若有加載庫(kù)程序,請(qǐng)將光盤(pán)根目錄下的“庫(kù)程序”下的“ICC_H”文件夾拷到D盤(pán)
(2)請(qǐng)?jiān)敿?xì)閱讀:光盤(pán)根目錄下的“產(chǎn)品資料開(kāi)發(fā)板實(shí)驗(yàn)板SMK系列SMK1632說(shuō)明資料”
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#include
#include "D:ICC_HCmmICC.H"

#define DISP_DDRDDRB
#define DISP_PORTPORTB

/*--------------------------------------------------------------------
程序名稱(chēng):看門(mén)狗WDT初始化程序
程序功能:
注意事項(xiàng):
提示說(shuō)明:
輸入:
返回:
--------------------------------------------------------------------*/
void wdt_init(void)
{
asm("wdr");//clr wdt
WDTCR=0x0F;//enable wdt,clk = 2048,2.1S
}
/*--------------------------------------------------------------------
程序名稱(chēng):
程序功能:
注意事項(xiàng):
提示說(shuō)明:
輸入:
返回:
--------------------------------------------------------------------*/
void main(void)
{
uint8 i;

DISP_DDR = 0XFF;
wdt_init();

while(1)
{
DISP_PORT++; //數(shù)據(jù)顯示向上加,作AVR正常運(yùn)行的指示
asm("wdr"); //喂狗,去除此句將導(dǎo)致狗餓死,AVR復(fù)位
delay50ms(20);
}
}

系統(tǒng)調(diào)試

在A(yíng)VR的運(yùn)行程序中設(shè)置讓PB顯示端口自加。若AVR正常工作,及時(shí)喂狗,則單片機(jī)設(shè)置的顯示端口正常自加。去除語(yǔ)句:asm("wdr");單片機(jī)不斷復(fù)位,程序得不到允許,自加數(shù)據(jù)沒(méi)有顯示往上加。



關(guān)鍵詞: AVR看門(mén)狗WDT程

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉