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