主要是因为如果中断正好发生在 BCF INTCON,GIE这句后面,主程序清了GIE后立即进入中断服务程序,退出中断的时候又自动恢复了GIE,所以,主程序改成:<br /><br />LOOP BCF INTCON, GIE ; Disable Global Interrupt<br /> BTFSC INTCON, GIE ; Global Interrupt Disabled?<br /> GOTO LOOP ; NO, try again<br /> : ; YES, continue with program flow<br /> : <br /> BSF INTCON, GIE ; Re-enable Global Interrupt<br /><br />真的需要这么麻烦码?GIE清除这条指令后,即使有INTERRUPT FLAG,也不能通过一群与或门(最后一道GIE的与门被关闭了)触发中断啊?<br />请MARTIN指教,虽然明白这么写最保险,但是这个牵涉PIC内部的时序设计,还是原厂FAE提供解答比较好。谢谢。 |
|