void YourLowPriorityISRCode() { //Check which interrupt flag caused the interrupt. //Service the interrupt //Clear the interrupt flag //Etc. #if TIMER2_INTERRUPT timer2_int_handler(); #endif } //This return will be a "retfie", since this is in a #pragma interruptlow section
interrupt low_priority #else #pragma code #pragma interruptlow InterruptHandlerLow #endif void InterruptHandlerLow() { #ifdef SENSOR_PIC if (PIR1bits.ADIF) { PIR1bits.ADIF = 0; adc_int_handler(); } #endif //SENSOR_PIC // check to see if we have an interrupt on USART RX if (PIR1bits.RCIF) { PIR1bits.RCIF = 0; //clear interrupt flag #if !defined(SENSOR_PIC) && !defined(MOTOR_PIC) if(wifly_setup){ uart_recv_int_handler(); } else{ #endif uart_recv_wifly_debug_handler(); #if !defined(SENSOR_PIC) && !defined(MOTOR_PIC) } #endif } if (PIR1bits.TXIF) { PIR1bits.TXIF = 0; // clear interrupt flag if (PIE1bits.TXIE) uart_send_int_handler(); } #ifndef MOTOR_PIC if (PIR1bits.TMR1IF) { PIR1bits.TMR1IF = 0; //clear interrupt flag timer1_int_handler(); } #endif #ifdef SENSOR_PIC if (PIR1bits.TMR2IF){ PIR1bits.TMR2IF = 0; //Clear the interrupt flag timer2_int_handler(); } #endif }