看門狗是在軟件跑飛的情況下CPU自恢復的一個方式,當軟件在選定的時間間隔內不能置位看門狗定時器(WDT),WDT就復位系統。看門狗可用于電噪聲,電源故障或靜電放電等惡劣工作環境或高可靠性要求的環境。如果系統不需要應用到看門狗,則WDT可配置成間隔定時器,在選定時間間隔內產生中斷。 WDT的特性如下:4個可選擇的時間間隔看門狗定時器模式下產生中斷請求時鐘獨立于系統時鐘,WDT包括一個15位定時/計數器,它的頻率由32.768KHz的晶振決定。用戶不能查看計數器的值工作于各個電源模式。讓用戶了解幾種看門狗定時器的使用
0.png (202.34 KB, 下載次數: 67)
下載附件
2017-11-29 03:34 上傳
單片機源程序如下:
- /****************************************************************************
- * 文 件 名: main.c
- * 作 者: Andy
- * 修 訂: 01-09
- * 版 本: 1.0
- * 描 述: 打開看門狗后,得記得喂狗,不然系統就會不停地復位了
- ****************************************************************************/
- #include <ioCC2530.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
- #define LED1 P1_0 // P1.0口控制LED1
- #define LED2 P1_1 // P1.1口控制LED2
- /****************************************************************************
- * 名 稱: DelayMS()
- * 功 能: 以毫秒為單位延時 16M時約為535,系統時鐘不修改默認為16M
- * 入口參數: msec 延時參數,值越大,延時越久
- * 出口參數: 無
- ****************************************************************************/
- void DelayMS(uint msec)
- {
- uint i,j;
-
- for (i=0; i<msec; i++)
- for (j=0; j<535; j++);
- }
- /****************************************************************************
- * 名 稱: InitLed()
- * 功 能: 設置LED燈相應的IO口
- * 入口參數: 無
- * 出口參數: 無
- ****************************************************************************/
- void InitLed(void)
- {
- P1DIR |= 0x03; //P1.0、P1.1定義為輸出
- LED1 = 1; //默認LED燈為熄滅狀態
- LED2 = 1;
- }
- void Init_Watchdog(void)
- {
- WDCTL = 0x00; //打開IDLE才能設置看門狗
- WDCTL |= 0x08; //定時器間隔選擇,間隔一秒
- }
- void FeetDog(void)
- {
- WDCTL = 0xa0; //清除定時器。當0xA跟隨0x5寫到這些位,定時器被清除
- WDCTL = 0x50;
- LED2 = 0; //系統不復位LED2燈長亮
- }
- /****************************************************************************
- * 程序入口函數
- ****************************************************************************/
- void main(void)
- {
- InitLed(); //調用初始化函數
- Init_Watchdog();
- while(1)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (6.04 KB, 下載次數: 60)
下載附件
2017-11-29 03:35 上傳
所有資料51hei提供下載:
15.看門狗.zip
(303.76 KB, 下載次數: 14)
2017-11-28 21:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|