|
2.4STM8.jpg (197.07 KB, 下載次數(shù): 32)
下載附件
2017-12-16 14:50 上傳
窗口看門狗介紹
窗口看門狗用于監(jiān)測由于外部干擾或不可預(yù)知的邏輯條件所產(chǎn)生的軟件錯(cuò)誤,這樣的軟件錯(cuò)誤通常會導(dǎo)致應(yīng)用程序不按照預(yù)期的方式運(yùn)行。除非程序在遞減計(jì)數(shù)器的T6位變?yōu)?之前刷新遞減計(jì)數(shù)器,看門狗電路將在一個(gè)預(yù)置的時(shí)間間隔后產(chǎn)生系統(tǒng)復(fù)位;如果在7位的遞減計(jì)數(shù)器數(shù)值達(dá)到窗口寄存器數(shù)值之前刷新遞減計(jì)數(shù)器,同樣會產(chǎn)生系統(tǒng)復(fù)位。這就意味著只能在一個(gè)有限的時(shí)間窗口內(nèi)刷新遞減計(jì)數(shù)器。
窗口看門狗時(shí)序圖
1.png (125.94 KB, 下載次數(shù): 40)
下載附件
2017-12-16 14:52 上傳
計(jì)算公式:
(0x7F-0x3F)*(12288/16Mhz)
窗口看門狗功能說明
如果開啟了看門狗(設(shè)置了WDGA=1),當(dāng)7位的遞減計(jì)數(shù)器(T[6:0]位)從0x40變?yōu)?x3F時(shí)(即T6變?yōu)?),看門狗產(chǎn)生一個(gè)復(fù)位信號并把復(fù)位引腳拉低。如果軟件刷新計(jì)數(shù)器時(shí),計(jì)數(shù)器的數(shù)值大于窗口寄存器中的數(shù)值,同樣會產(chǎn)生復(fù)位。
2.png (117.7 KB, 下載次數(shù): 50)
下載附件
2017-12-16 14:53 上傳
在正常的操作期間,應(yīng)用程序必須定期地寫入WDGCR寄存器,以避免產(chǎn)生復(fù)位;這個(gè)寫的動作必須在計(jì)數(shù)器的數(shù)值小于窗口寄存器的數(shù)值時(shí)進(jìn)行。寫入WDGCR寄存器的數(shù)值必須是介于0x7F和0x40之間
● 開啟看門狗:
如果(通過選擇字節(jié))選擇了軟件看門狗,在系統(tǒng)復(fù)位后看門狗處于關(guān)閉狀態(tài)。設(shè)置WDGCR寄存器中的WDGA位將開啟看門狗,隨后在下次復(fù)位之前將不能關(guān)閉看門狗。如果(通過選擇字節(jié))選擇了硬件看門狗,看門狗將始終開啟,而WDGA位將不起作用。
● 控制遞減計(jì)數(shù)器:
遞減計(jì)數(shù)器是自由運(yùn)行計(jì)數(shù)器:即使未開啟看門狗,它依然不斷地遞減計(jì)數(shù)。當(dāng)開啟看門狗時(shí),必須設(shè)置T6位以避免立刻產(chǎn)生復(fù)位。T[5:0]位中包含了看門狗產(chǎn)生復(fù)位前允許的時(shí)間延遲;因?yàn)閷懭隬DGCR寄存器時(shí),預(yù)分頻器的狀態(tài)是不可知的,所以這個(gè)時(shí)間延遲介于一個(gè)最小和最大數(shù)值之間。窗口寄存器(WDGWR)的數(shù)值是指定窗口的高限:為防止復(fù)位,必須在遞減計(jì)數(shù)器的數(shù)值小于窗口寄存器的數(shù)值并大于0x3F時(shí)刷新遞減計(jì)數(shù)器。
注意:T6 位可以用于產(chǎn)生一個(gè)軟件復(fù)位(即設(shè)置WDGA位同時(shí)清除 T6 位)
WWDG_CR寄存器
3.png (222.53 KB, 下載次數(shù): 31)
下載附件
2017-12-16 14:54 上傳
4.png (131.41 KB, 下載次數(shù): 43)
下載附件
2017-12-16 14:55 上傳
單片機(jī)源程序如下:
- /***********************************************************************
- * 開發(fā)平臺: 劍齒虎STM8開發(fā)板
- * 作 者: 劉洋
- * 版 本: V1.0
- * 日 期: 2017-11-25
- *
- * STVD開發(fā)環(huán)境 版本 V4.3.12
- * ST庫函數(shù) 版本 V2.2.0
- ***********************************************************************/
- #include "pbdata.h"//引入自定義公共頭文件
- void BSP_Configuration(void);//硬件初始化函數(shù)聲明
- /***********************************************************************
- * 函 數(shù) 名: main
- * 功能說明: c程序入口
- * 形 參:無
- * 返 回 值: 錯(cuò)誤代碼(無需處理)
- ***********************************************************************/
- int main(void)
- {
- BSP_Configuration();//硬件驅(qū)動初始化函數(shù)
-
- printf("窗口看門狗測試程序\r\n");
-
- while(1)//主程序循環(huán),反復(fù)執(zhí)行循環(huán)體里的語句
- {
- WWDG_Refresh();
- }
- }
- /***********************************************************************
- * 函 數(shù) 名: BSP_Configuration
- * 功能說明: 初始化硬件設(shè)備。只需要調(diào)用一次。該函數(shù)配置CPU寄存器和外設(shè)的寄存器并初始化一些全局變量。
- * 形 參:無
- * 返 回 值: 無
- ***********************************************************************/
- void BSP_Configuration(void)
- {
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//時(shí)鐘速度為內(nèi)部16M,1分頻,
- UART1_Congfiguration();//調(diào)用RS232串口1初始化函數(shù)
- LED_Init();//調(diào)用LED初始化函數(shù)
- delay_ms(1000);
- WWDG_Configuration();
- rim();//打開總中斷
- }
- /*斷言函數(shù):它的作用是在編程的過程中為程序提供參數(shù)檢查*/
- #ifdef USE_FULL_ASSERT
- void assert_failed(u8* file,u32 line)
- {
- while(1)
- {
- }
- }
- #endif
復(fù)制代碼
0.png (5.85 KB, 下載次數(shù): 28)
下載附件
2017-12-16 21:43 上傳
所有資料51hei提供下載:
【眾拳】劍齒虎STM8開發(fā)板的實(shí)驗(yàn)代碼下載:
眾拳STM8窗口看門狗(WWDG)實(shí)驗(yàn)程序.zip
(1.82 MB, 下載次數(shù): 31)
2017-12-16 14:56 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|