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