|
关于INT0中断的问题请教
|
|
新會員
|
void PIC18F_HIGH_isr ( void ); //高优先级中断函数声明 #pragma code high_vector_section = 0x08 void high_vector ( void ) { _asm goto PIC18F_HIGH_isr _endasm } #pragma code void PIC18F_HIGH_isr ( void ) { if( INTCONbits.INT0IF==1 ) { INTCONbits.INT0IF = 0; ………… } } 为什么第一次中断到来时,能进入中断函数,可是进去以后检测到GIE=0,如果不在中断函数里令GIE=1;就无法再次进入此中断。而如果改成下述程序就不会出现这个问题??? #progma interrupt PIC_HIGH_isr void PIC_HIGH_sir(void) { …… } #progma code 这两种写法有什么区别之处??
發表於: 2010/1/7 14:17
|
|