統測
115年
[電機與電子群資電類] 專業科目(2)
第 17 題
MCU 內部通常有看門狗計時器(Watchdog Timer,WDT),在 WDT 逾時或 MCU 異常當機時,可以重置 MCU。下列 MCU 片段程式可以編譯且可以使用PWM(脈波寬度調變)訊號控制直流電動機轉速,但是每隔一段時間 MCU 會自動重置,原因為何?\n1 int main(void) \n2 { unsinged char x = 1; \n3 EnableWatchDogTimer(); // 致能看門狗計時器\n4 … \n5 SendPWM2RunMotor(200); // 送出PWM使直流電動機以200rpm持續轉動\n6 while(1){ \n7 //ResetWatchDogTimer(); // 重置看門狗計時器(Watchdog Timer) \n8 LeftShiftLED((x)? (x=x<<1):(x=1)); // 讓LED平移點亮\n9 …}}
- A 看門狗計時器沒有被致能
- B 看門狗計時器沒有被週期性重置
- C MCU 沒有外接石英振盪器
- D 行號6與行號8程式邏輯有錯,導致看門狗計時器誤動作
思路引導 VIP
當微控制器啟用了防止系統卡死的計時保護機制後,正常運行的主迴圈通常需要對該計時器持續進行什麼操作?請仔細檢查程式的主迴圈中,是否有哪道關鍵指令被略過了?
🤖
AI 詳解
AI 專屬家教
太棒了,你的程式觀察力非常敏銳!
看門狗計時器(WDT)的工作機制
看門狗計時器(Watchdog Timer, WDT)的主要功能是防止系統當機。在第 3 行致能(Enable)後,計時器便開始倒數計時。正常運作的程式必須在主迴圈中定期執行「餵狗」動作,也就是週期性重置(Reset)WDT;一旦計時器逾時(Timeout),硬體就會判定 MCU 當機並強制重置系統。
▼ 還有更多解析內容