免費開始練習
統測 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 的數值。

▼ 還有更多解析內容

🏷️ 相關主題

微處理機中斷系統與周邊控制技術
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題