(XC32) How do I write a Interrupt Service Routine (ISR) for a particular interrupt vector for PIC32 devices using ISR macros?
In MPLAB® XC32, Interrupt Service Routines (ISRs) can be written using the following macros:
- __ISR
- __ISR_AT_VECTOR
The __ISR macro will assign the vector-number location to a specific Interrupt Priority Level (IPL). This will place a jump to the interrupt handler at the associated vector location.
Example
The __ISR_AT_VECTOR(v, IPL) will place the entire interrupt handler at the vector location and associate it with the software-assigned interrupt priority. Software should make sure that the vector spacing is set to accommodate the size of the handler.
Example
The attribs.h header file contains macro definitions for __ISR and __ISR_AT_VECTOR. Macro for interrupt vector number can be found in device specific header file under the folder <Compiler-DIR>/pic32mx/include/proc.