dsPIC33EP64GS504 interrupt vectors

Reset at 0x000000 (a GOTO to the program), then the interrupt vector table from 0x000004: first the 6 traps (non-maskable faults: oscillator failure, address error, stack error, math error…), then the 72 interrupt sources. Each vector is one program word holding its handler's address, so vector n is at 0x000004 + 2n, and IRQ n is vector n + 8. Each source has a flag in IFSx, an enable bit in IECx and a priority from 1 to 7 in IPCx (the Registers page lists them). In XC16 a handler is named after its vector: void __attribute__((interrupt, auto_psv)) _T1Interrupt(void).

VectorIRQ · addressNameHandlerSource
–0x000000RESETreset: main() after start-upReset
0trap · 0x000004OscillatorFail_OscillatorFailOscillator Fail Trap vector
1trap · 0x000006AddressError_AddressErrorAddress error Trap vector
2trap · 0x000008HardTrapError_HardTrapErrorGeneric Hard Trap vector
3trap · 0x00000AStackError_StackErrorStack Error Trap Vector
4trap · 0x00000CMathError_MathErrorMath Error Trap vector
6trap · 0x000010SoftTrapError_SoftTrapErrorGeneric Soft Trap vector
8IRQ 0 · 0x000014INT0Interrupt_INT0InterruptExternal Interrupt 0
9IRQ 1 · 0x000016IC1Interrupt_IC1InterruptInput Compare 1
10IRQ 2 · 0x000018OC1Interrupt_OC1InterruptOutput Compare 1
11IRQ 3 · 0x00001AT1Interrupt_T1InterruptTimer 1
13IRQ 5 · 0x00001EIC2Interrupt_IC2InterruptInput Capture 2
14IRQ 6 · 0x000020OC2Interrupt_OC2InterruptOutput Compare 2
15IRQ 7 · 0x000022T2Interrupt_T2InterruptTimer 2
16IRQ 8 · 0x000024T3Interrupt_T3InterruptTimer 3
17IRQ 9 · 0x000026SPI1ErrInterrupt_SPI1ErrInterruptSPI1 error
18IRQ 10 · 0x000028SPI1Interrupt_SPI1InterruptSPI1 transfer done
19IRQ 11 · 0x00002AU1RXInterrupt_U1RXInterruptUART1 Receiver
20IRQ 12 · 0x00002CU1TXInterrupt_U1TXInterruptUART1 Transmitter
21IRQ 13 · 0x00002EAD1Interrupt_AD1InterruptADC1 Convert Done
23IRQ 15 · 0x000032NVMInterrupt_NVMInterruptNVM Write Complete Interrupt
24IRQ 16 · 0x000034SI2C1Interrupt_SI2C1InterruptI2C1 Slave Events
25IRQ 17 · 0x000036MI2C1Interrupt_MI2C1InterruptI2C1 Master Events
26IRQ 18 · 0x000038CMP1Interrupt_CMP1InterruptAnalog Comparator 1 Interrupt
27IRQ 19 · 0x00003ACNInterrupt_CNInterruptChange Notification Interrupt
28IRQ 20 · 0x00003CINT1Interrupt_INT1InterruptExternal Interrupt 1
33IRQ 25 · 0x000046OC3Interrupt_OC3InterruptOutput Compare 3
34IRQ 26 · 0x000048OC4Interrupt_OC4InterruptOutput Compare 4
35IRQ 27 · 0x00004AT4Interrupt_T4InterruptTimer 4
36IRQ 28 · 0x00004CT5Interrupt_T5InterruptTimer 5
37IRQ 29 · 0x00004EINT2Interrupt_INT2InterruptExternal Interrupt 2
38IRQ 30 · 0x000050U2RXInterrupt_U2RXInterruptUART2 Receiver
39IRQ 31 · 0x000052U2TXInterrupt_U2TXInterruptUART2 Transmitter
40IRQ 32 · 0x000054SPI2ErrInterrupt_SPI2ErrInterruptSPI2 error
41IRQ 33 · 0x000056SPI2Interrupt_SPI2InterruptSPI2 transfer done
45IRQ 37 · 0x00005EIC3Interrupt_IC3InterruptInput Capture 3
46IRQ 38 · 0x000060IC4Interrupt_IC4InterruptInput Capture 4
57IRQ 49 · 0x000076SI2C2Interrupt_SI2C2InterruptI2C2 Slave Events
58IRQ 50 · 0x000078MI2C2Interrupt_MI2C2InterruptI2C2 Master Events
62IRQ 54 · 0x000080INT4Interrupt_INT4InterruptExternal Interrupt 4
65IRQ 57 · 0x000086PWMSpEventMatchInterrupt_PWMSpEventMatchInterruptPWM special event match
73IRQ 65 · 0x000096U1ErrInterrupt_U1ErrInterruptUART1 Error
74IRQ 66 · 0x000098U2ErrInterrupt_U2ErrInterruptUART2 Error
81IRQ 73 · 0x0000A6PWMSecSpEventMatchInterrupt_PWMSecSpEventMatchInterruptPWM secondary special event match
102IRQ 94 · 0x0000D0PWM1Interrupt_PWM1InterruptPWM1 Interrupt
103IRQ 95 · 0x0000D2PWM2Interrupt_PWM2InterruptPWM2 Interrupt
104IRQ 96 · 0x0000D4PWM3Interrupt_PWM3InterruptPWM3 Interrupt
105IRQ 97 · 0x0000D6PWM4Interrupt_PWM4InterruptPWM4 Interrupt
106IRQ 98 · 0x0000D8PWM5Interrupt_PWM5InterruptPWM5 Interrupt
111IRQ 103 · 0x0000E2CMP2Interrupt_CMP2InterruptAnalog Comparator 2 Interrupt
112IRQ 104 · 0x0000E4CMP3Interrupt_CMP3InterruptAnalog Comparator 3 Interrupt
113IRQ 105 · 0x0000E6CMP4Interrupt_CMP4InterruptAnalog Comparator 4 Interrupt
118IRQ 110 · 0x0000F0ADCAN0Interrupt_ADCAN0InterruptADC AN0 Convert Done
119IRQ 111 · 0x0000F2ADCAN1Interrupt_ADCAN1InterruptADC AN1 Convert Done
120IRQ 112 · 0x0000F4ADCAN2Interrupt_ADCAN2InterruptADC AN2 Convert Done
121IRQ 113 · 0x0000F6ADCAN3Interrupt_ADCAN3InterruptADC AN3 Convert Done
122IRQ 114 · 0x0000F8ADCAN4Interrupt_ADCAN4InterruptADC AN4 Convert Done
123IRQ 115 · 0x0000FAADCAN5Interrupt_ADCAN5InterruptADC AN5 Convert Done
124IRQ 116 · 0x0000FCADCAN6Interrupt_ADCAN6InterruptADC AN6 Convert Done
125IRQ 117 · 0x0000FEADCAN7Interrupt_ADCAN7InterruptADC AN7 Convert Done
150IRQ 142 · 0x000130ICDInterrupt_ICDInterruptICD Application
151IRQ 143 · 0x000132JTAGInterrupt_JTAGInterruptJTAG Programming
159IRQ 151 · 0x000142ADCAN8Interrupt_ADCAN8InterruptADC AN8 Convert Done
160IRQ 152 · 0x000144ADCAN9Interrupt_ADCAN9InterruptADC AN9 Convert Done
161IRQ 153 · 0x000146ADCAN10Interrupt_ADCAN10InterruptADC AN10 Convert Done
162IRQ 154 · 0x000148ADCAN11Interrupt_ADCAN11InterruptADC AN11 Convert Done
163IRQ 155 · 0x00014AADCAN12Interrupt_ADCAN12InterruptADC AN12 Convert Done
165IRQ 157 · 0x00014EADCAN14Interrupt_ADCAN14InterruptADC AN14 Convert Done
168IRQ 160 · 0x000154ADCAN17Interrupt_ADCAN17InterruptADC AN17 Convert Done
169IRQ 161 · 0x000156ADCAN18Interrupt_ADCAN18InterruptADC AN18 Convert Done
170IRQ 162 · 0x000158ADCAN19Interrupt_ADCAN19InterruptADC AN19 Convert Done
171IRQ 163 · 0x00015AADCAN20Interrupt_ADCAN20InterruptADC AN20 Convert Done
172IRQ 164 · 0x00015CADCAN21Interrupt_ADCAN21InterruptADC AN21 Convert Done
181IRQ 173 · 0x00016EI2C1BCInterrupt_I2C1BCInterruptI2C1 Bus Collision
182IRQ 174 · 0x000170I2C2BCInterrupt_I2C2BCInterruptI2C2 Bus Collision
185IRQ 177 · 0x000176ADCMP0Interrupt_ADCMP0InterruptADC Digital Comparator0 Int
186IRQ 178 · 0x000178ADCMP1Interrupt_ADCMP1InterruptADC Digital Comparator1 Int
187IRQ 179 · 0x00017AADFLTR0Interrupt_ADFLTR0InterruptADC OverSampling Filter 0 Int
188IRQ 180 · 0x00017CADFLTR1Interrupt_ADFLTR1InterruptADC OverSampling Filter 1 Int