TOP

爲什麽程序中清FP00IEN後,本來應該禁止外部中斷INT0,但在程序運行時發現也可進入?

SONIX 的8位MCU中斷機制是一旦在P0.0口接受到中斷條件,總會設置相應的中斷標志位FP00IRQ,但能不能進入中斷還要看FP00IEN是否允許(這樣 做是爲了客戶采用查詢方式的需要)。但是一旦中斷標志位FP00IRQ被外部中斷條件設定後,又有其他中斷産生,此時若中斷程序處理不當,則可能造成錯誤 進入INT0中斷。解决辦法:
1.若中斷程序中不需要INT0中斷,則中斷程序中不要查FP00IRQ標志。
2.若中斷程序中需要INT0中斷,應該配合FP00IEN一起使用,如下:
B0BTS1 FP00IEN ;P00中斷是否打開
JMP EXIT ;沒有P00中斷,退出
B0BTS1 P00IRQ ;進一步查詢中斷請求標志
JMP NEXT
:
NEXT: ;P00中斷服務程序
:
EXIT: ;退出中斷服務程序
RETI