WDT(WatchDogTimer)
Download
Report
Transcript WDT(WatchDogTimer)
[1205] Lecture 9
WDT
認識WDT
認識WDT 的用途與使用方法
操作WDT的兩種模式
WDT
WDT 模組
WDT = Watch Dog Timer
看門狗計時器
主要的功能為確保系統不會因為軟體
因素而死當、凍結
WDT
WDT 模組
作動原理為是透過一個計時器設定一
段時間區間
在時間區間內,程式必須要將Watch
Dog Timer 計數器歸零
一旦在時間區間內沒有將計數器歸零,
系統將自動進行Reset、PUC(Power
Up Clear)
WDT
WDT 模組
WDT 在不用作看門狗功能時,也可
當作一個32-bit的計時器使用
WDT作為計時器使用時,提供一個
WDT_VECTOR 中斷向量可以使用
WDT 也支援暫停模式,配合達到省
電目的
WDT
WDT 設定
WDT 的大部分設定皆操作在一個16bit 暫存器WDTCTL中
除了WDTIE bit 和WDTIFG 是設置在
SFR系列暫存器中
WDTCTL暫存器是一個受到密碼保護
的暫存器寫入時需要在高位元寫入密
碼,否則也會導致系統重置(resetPUC)
WDT
WDT 設定
WDTCTL的高8位元是WDTPW,被
設計成讀取時為069h
在寫入WDTCTL時,高位元皆必須寫
入05Ah,否則會導致reset
WDT
WDT 設定
WDTHOLD(BIT7):
暫停WDTCNT,不使用WDT時設定此位元為
1,減少耗能,同時避免WDT動作
每一次課程中主程式的第一行程式碼的動作
即是暫停WDT的動作
WDT
WDT 設定
WDTSSEL(BIT5-6):
選擇WDT的時脈來源,預設是00=SMCLK≅
1.045𝑀𝐻𝑧
01=ACLK=32768𝐻𝑧
10=VLOCLK≅ 10𝐾𝐻𝑧
11=X_CLK=VLOCLK
WDT
WDT 設定
WDTTMSEL(BIT4):
選擇WDT模式,預設是0= Watchdog Mode
1=間格時間計時器
WDT
WDT 設定
WDTCNTCL(BIT3):
WDTCNT Clear,在此bit寫入1能夠清除
WDTCNT中的數值
WDT
WDT 設定
WDTTIS(BIT2-0):
WDT Time interval selection,WDT的計時區
間只能透過TIS設定,不能直接修改WDTCNT,
因此只有固定8種組合。
WDT
WDT 設定
WDTTIS(BIT2-0):
預設為100b = 𝑇𝑐𝑙𝑘 × 215
因此,在預設的WDT設定中,32ms內沒有設
定WDT,則會自動reset系統
WDT
WDT 設定
WDTTIS(BIT2-0)的時間區間:
000b = 𝑇𝑐𝑙𝑘 × 231 (65536sec at 32kHz)
001b = 𝑇𝑐𝑙𝑘 × 227 (4096sec at 32kHz)
010b = 𝑇𝑐𝑙𝑘 × 223 (256sec at 32kHz)
011b = 𝑇𝑐𝑙𝑘 × 219 (16sec at 32kHz)
100b = 𝑇𝑐𝑙𝑘 × 215 (1sec at 32kHz)
101b = 𝑇𝑐𝑙𝑘 × 213 (250ms at 32kHz)
110b = 𝑇𝑐𝑙𝑘 × 29 (15.625ms at 32kHz)
111b = 𝑇𝑐𝑙𝑘 × 26 (1.95ms at 32kHz)
WDT
WDT 設定
WDTIE 設置於SFRIE1的BIT0
WDTIFG設置於SFRIFG1的BIT0
在Interval Timer模式下,設置WDTIE和GIE,
即可令系統回應來自WDT的中斷訊號,進入
專屬的WDT_VECTOR執行中斷向量副程式
WDT
WDT Clock Fail-Safe Feature
當WDT設置在看門狗模式時,
為了確保時脈供應,在SMCLK
或ACLK無法正常提供時脈時,
會自動選擇VLOCLK作為備用時脈。
Example
範例1
配置WDT為Interval Timer,並設置中斷副程
式切換D1的狀態
選用ACLK作為時脈來源
選用時間區間為250ms
範例程式下載
Example
範例2
配置WDT為Watch Dog,觀察其在一定時間
後重置。
選用ACLK作為時脈來源
選用時間區間為1000ms
程式起始會亮起D1一下然後熄滅
接著閃爍D2
範例程式下載
Exercise
練習1
配置WDT為Interval Timer,並設置中斷副程
式切換D1的狀態
選用ACLK作為時脈來源
選用時間區間為1000ms
除了範例中的指令字,有沒有其他的指令字
也可以達到一樣的效果?
Exercise
練習2
配置WDT為Watch Dog,但不讓其重置系統
(不使用WDTHOLD)
選用ACLK作為時脈來源
選用時間區間為1000ms
程式起始前要閃一下D1代表程式開端
持續閃爍D2不重置
Exercise
完成後,找到專案裡面的source file,以附
檔形式寄到 [email protected],並在
主旨中註明姓名、系級與學號,
source檔名稱請利於辨識。
EX:
主旨:
微處理機實習 LAB3 王大明 電機碩二 7101064123