LONGEPASS
數位電子/程式語言/Q22
中等
正確率 -
Q22.

ATmega328P 程式碼如下,下列敘述何者正確?數位電子 甲級 程式語言 第 22 題 題目 圖片

數位電子 · 甲級 · 程式語言 · Q22

難易度分析

3 / 5

此題評為中等難度,因其需掌握 AVR 中斷控制與位元操作的正確映射,且包含一至兩個易誤導的選項,需謹慎辨識。

正確答案:②_CLI()表示關閉中斷功能

② _CLI()表示關閉中斷功能:_CLI() 代表 Clear Interrupt,會清除 SREG 中的 全域中斷使能旗標,使 CPU 不再回應任何可遮罩中斷請求,此為關閉中斷功能的標準操作,常用於保護臨界區段(Critical Section)。

錯誤選項解析

  • ① _CLI()表示啟動中斷功能:_CLI() 是 AVR 微控制器中的 Clear Global Interrupt Flag 指令,用於清除 SREG 暫存器的 I 旗標,其作用為關閉全域中斷而非啟動中斷。啟動中斷應使用 _SEI()(Set Global Interrupt Flag)。
  • ③ EECR |= (1<<EEMPE)對應組合語言sbis EECR, EEMPE:EECR |= (1<<EEMPE) 是 C 語言的位元設定操作,對應的組合語言應為 sbi EECR, EEMPE(Set Bit in I/O Register),而非 sbis(Skip if Bit in I/O Register is Set)。sbi 用於寫入設定位元,sbis 用於讀取判斷位元狀態以跳過下一指令。
  • ④ EECR |= (1<<EEPE)對應組合語言sbis EECR, EEPE:EECR |= (1<<EEPE) 同樣是 C 語言的位元設定操作,對應的組合語言應為 sbi EECR, EEPE,而非 sbis。sbis 是條件跳過指令,用於讀取測試位元是否為 1,與設定位元的操作完全不同。
Learning Tip

"本題核心考點為 AVR 中斷控制指令(_CLI/_SEI) 與 C 語言位元操作對應之組合語言 的辨識。常考陷阱在於混淆 sbi(設定位元)與 sbis(測試位元跳過)的功能差異。實務上操作 EEPROM 寫入 時,必須先設定 EEMPE 使能旗標,再設定 EEPE 啟動寫入,兩者順序不可顛倒,且寫入期間需確保中斷已關閉以避免資料損毀。"

學員答題分佈

①_CLI()表示啟動中斷功能0%
②_CLI()表示關閉中斷功能0%
③EECR |= (1<<EEMPE)對應組合語言sbis EECR, EEMPE0%
④EECR |= (1<<EEPE)對應組合語言sbis EECR, EEPE0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目