新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR 看門狗WDT程序

        AVR 看門狗WDT程序

        作者: 時間:2016-11-17 來源:網絡 收藏
        系統功能

        本文引用地址:http://www.104case.com/article/201611/315549.htm

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

        硬件設計


        AVR主控電路原理


        LED控制電路原理圖

        軟件設計

        //目標系統:基于AVR單片機
        //應用軟件:ICCAVR

        /*01010101010101010101010101010101010101010101010101010101010101010101
        ----------------------------------------------------------------------
        實驗內容:
        觀察喂狗與不喂狗的區別,使用PB口的LED指示燈做狀態指示。
        ----------------------------------------------------------------------
        硬件連接:
        將PB口的LED指示燈使能開關切換到"ON"狀態。
        ----------------------------------------------------------------------
        注意事項:
        (1)若有加載庫程序,請將光盤根目錄下的“庫程序”下的“ICC_H”文件夾拷到D盤
        (2)請詳細閱讀:光盤根目錄下的“產品資料開發板實驗板SMK系列SMK1632說明資料”
        ----------------------------------------------------------------------
        10101010101010101010101010101010101010101010101010101010101010101010*/

        #include
        #include "D:ICC_HCmmICC.H"

        #define DISP_DDRDDRB
        #define DISP_PORTPORTB

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

        DISP_DDR = 0XFF;
        wdt_init();

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

        系統調試

        在AVR的運行程序中設置讓PB顯示端口自加。若AVR正常工作,及時喂狗,則單片機設置的顯示端口正常自加。去除語句:asm("wdr");單片機不斷復位,程序得不到允許,自加數據沒有顯示往上加。



        關鍵詞: AVR看門狗WDT程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 晋州市| 公安县| 平武县| 鹤峰县| 钟祥市| 侯马市| 东辽县| 河北区| 武清区| 万载县| 遂溪县| 井研县| 龙川县| 台东市| 吐鲁番市| 津南区| 宝山区| 临城县| 南通市| 玛纳斯县| 昌江| 赤水市| 开封市| 大港区| 大邑县| 即墨市| 北京市| 来宾市| 平陆县| 桑植县| 清原| 蒙城县| 嘉黎县| 吉林省| 肥城市| 都兰县| 尼勒克县| 绥棱县| 恩平市| 东兴市| 通城县|