Hi, The C18 example states that an interrupt handler is to be defined thus: (in MCC18\examples\Interrupt\main.c) //-------------------------------------------------------------------------= --- // High priority interrupt vector #pragma code InterruptVectorHigh =3D 0x08 void InterruptVectorHigh (void) { _asm goto InterruptHandlerHigh //jump to interrupt routine _endasm } //-------------------------------------------------------------------------= --- // High priority interrupt routine #pragma code #pragma interrupt InterruptHandlerHigh void InterruptHandlerHigh () { if (INTCONbits.TMR0IF) { //check for TMR0 overflow INTCONbits.TMR0IF =3D 0; //clear interrupt flag Flags.Bit.Timeout =3D 1; //indicate timeout LATBbits.LATB0 =3D !LATBbits.LATB0; //toggle LED on RB0 } } But I can't seem to figure out why that INTCONbits.GIEH is disabled after once it has run through the handler. In asm, the Global Interrupt handler is enabled after a retfie, but with C18 and the 18F4550, this doesn't seem to be the case, I do need a retfie as follows, for the interrupt to be re enabled. Any idea why it is thus ? Additionally, I have this question, the ISR is unconditionally jumping to another function. Especially in an ISR, I can't really reason why that would be a good practice ? (Although I can assume that the functions would expand to labels in asm. But still doesn't explain the missing retfie= ) void low_isr(void) { if ((PIE1bits.TMR2IE =3D=3D 1) && (PIR1bits.TMR2IF =3D=3D 1)) { PIR1bits.TMR2IF =3D 0; DisplayDigit(segment, display[segment]); } _asm retfie 0 _endasm } #pragma code low_vector =3D 0x18 void low_vector (void) { _asm goto low_isr _endasm } void init_timer2(void) { OpenTimer2(TIMER_INT_ON & T2_PS_1_4 & T2_POST_1_1); PR2 =3D 223; RCONbits.IPEN =3D 1; /* Interrupt priority enable */ IPR1bits.TMR2IP =3D 0; /* TMR2 Low priority */ INTCONbits.GIEL =3D 1; INTCONbits.GIEH =3D 1; } void main() { TRISD =3D 0; TRISC =3D 0; init_timer2(); while (1) { } } Thanks, Manu --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .