統測
115年
[電機與電子群資電類] 專業科目(2)
第 11 題
某 MCU 的片段程式如下,當下列何種情況發生時,程式可執行完行號 11?\n1 int Count; \n2 void Int3_IO(void){ // Int3中斷服務程式\n3 Count++; \n4 DisableInt3(); // 禁能Int3中斷\n5 } \n6 int main(void){ \n7 InitialSystem(); // 初始化系統參數與致能Int3中斷\n8 Count = 0; \n9 while(Count==0); // 等待條件式不成立\n10 Count++; \n11 return 1; }
- A 中斷致能 2 次
- B 禁能所有中斷
- C 觸發 Int3 中斷
- D 重置 MCU
思路引導 VIP
請觀察第 9 行的 while(Count==0);,如果程式要往下執行到第 11 行,Count 必須變成多少?程式中除了 main 之外,還有哪一段程式碼可以改變 Count 的值?它會在什麼條件下被執行?
🤖
AI 詳解
AI 專屬家教
太棒了,你的觀念非常清晰!
中斷服務程式與主程式的協同運作
在 main() 函式中,變數 Count 被初始化為 0 後,隨即進入第 9 行的無窮迴圈 while(Count==0); 進行忙碌等待。若要跳出此迴圈以順利執行到第 11 行,關鍵在於改變 Count 的數值。
▼ 還有更多解析內容