dsPIC33EP128GS706 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 107 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).
| Vector | IRQ · address | Name | Handler | Source |
|---|---|---|---|---|
| – | 0x000000 | RESET | reset: main() after start-up | Reset |
| 0 | trap · 0x000004 | OscillatorFail | _OscillatorFail | Oscillator Fail Trap vector |
| 1 | trap · 0x000006 | AddressError | _AddressError | Address error Trap vector |
| 2 | trap · 0x000008 | HardTrapError | _HardTrapError | Generic Hard Trap vector |
| 3 | trap · 0x00000A | StackError | _StackError | Stack Error Trap Vector |
| 4 | trap · 0x00000C | MathError | _MathError | Math Error Trap vector |
| 6 | trap · 0x000010 | SoftTrapError | _SoftTrapError | Generic Soft Trap vector |
| 8 | IRQ 0 · 0x000014 | INT0Interrupt | _INT0Interrupt | External Interrupt 0 |
| 9 | IRQ 1 · 0x000016 | IC1Interrupt | _IC1Interrupt | Input Compare 1 |
| 10 | IRQ 2 · 0x000018 | OC1Interrupt | _OC1Interrupt | Output Compare 1 |
| 11 | IRQ 3 · 0x00001A | T1Interrupt | _T1Interrupt | Timer 1 |
| 12 | IRQ 4 · 0x00001C | DMA0Interrupt | _DMA0Interrupt | DMA Channel 0 |
| 13 | IRQ 5 · 0x00001E | IC2Interrupt | _IC2Interrupt | Input Capture 2 |
| 14 | IRQ 6 · 0x000020 | OC2Interrupt | _OC2Interrupt | Output Compare 2 |
| 15 | IRQ 7 · 0x000022 | T2Interrupt | _T2Interrupt | Timer 2 |
| 16 | IRQ 8 · 0x000024 | T3Interrupt | _T3Interrupt | Timer 3 |
| 17 | IRQ 9 · 0x000026 | SPI1TXInterrupt | _SPI1TXInterrupt | SPI1 error |
| 18 | IRQ 10 · 0x000028 | SPI1RXInterrupt | _SPI1RXInterrupt | SPI1 transfer done |
| 19 | IRQ 11 · 0x00002A | U1RXInterrupt | _U1RXInterrupt | UART1 Receiver |
| 20 | IRQ 12 · 0x00002C | U1TXInterrupt | _U1TXInterrupt | UART1 Transmitter |
| 21 | IRQ 13 · 0x00002E | AD1Interrupt | _AD1Interrupt | ADC1 Convert Done |
| 22 | IRQ 14 · 0x000030 | DMA1Interrupt | _DMA1Interrupt | DMA Channel 1 |
| 23 | IRQ 15 · 0x000032 | NVMInterrupt | _NVMInterrupt | NVM Write Complete Interrupt |
| 24 | IRQ 16 · 0x000034 | SI2C1Interrupt | _SI2C1Interrupt | I2C1 Slave Events |
| 25 | IRQ 17 · 0x000036 | MI2C1Interrupt | _MI2C1Interrupt | I2C1 Master Events |
| 26 | IRQ 18 · 0x000038 | CMP1Interrupt | _CMP1Interrupt | Analog Comparator 1 Interrupt |
| 27 | IRQ 19 · 0x00003A | CNInterrupt | _CNInterrupt | Change Notification Interrupt |
| 28 | IRQ 20 · 0x00003C | INT1Interrupt | _INT1Interrupt | External Interrupt 1 |
| 32 | IRQ 24 · 0x000044 | DMA2Interrupt | _DMA2Interrupt | DMA Channel 2 |
| 33 | IRQ 25 · 0x000046 | OC3Interrupt | _OC3Interrupt | Output Compare 3 |
| 34 | IRQ 26 · 0x000048 | OC4Interrupt | _OC4Interrupt | Output Compare 4 |
| 35 | IRQ 27 · 0x00004A | T4Interrupt | _T4Interrupt | Timer 4 |
| 36 | IRQ 28 · 0x00004C | T5Interrupt | _T5Interrupt | Timer 5 |
| 37 | IRQ 29 · 0x00004E | INT2Interrupt | _INT2Interrupt | External Interrupt 2 |
| 38 | IRQ 30 · 0x000050 | U2RXInterrupt | _U2RXInterrupt | UART2 Receiver |
| 39 | IRQ 31 · 0x000052 | U2TXInterrupt | _U2TXInterrupt | UART2 Transmitter |
| 40 | IRQ 32 · 0x000054 | SPI2TXInterrupt | _SPI2TXInterrupt | SPI2 error |
| 41 | IRQ 33 · 0x000056 | SPI2RXInterrupt | _SPI2RXInterrupt | SPI2 transfer done |
| 42 | IRQ 34 · 0x000058 | C1RxInterrupt | _C1RxInterrupt | CAN 1 Rx Data Ready |
| 43 | IRQ 35 · 0x00005A | C1Interrupt | _C1Interrupt | CAN 1 combined sources |
| 44 | IRQ 36 · 0x00005C | DMA3Interrupt | _DMA3Interrupt | DMA Channel 3 |
| 45 | IRQ 37 · 0x00005E | IC3Interrupt | _IC3Interrupt | Input Capture 3 |
| 46 | IRQ 38 · 0x000060 | IC4Interrupt | _IC4Interrupt | Input Capture 4 |
| 57 | IRQ 49 · 0x000076 | SI2C2Interrupt | _SI2C2Interrupt | I2C2 Slave Events |
| 58 | IRQ 50 · 0x000078 | MI2C2Interrupt | _MI2C2Interrupt | I2C2 Master Events |
| 62 | IRQ 54 · 0x000080 | INT4Interrupt | _INT4Interrupt | External Interrupt 4 |
| 63 | IRQ 55 · 0x000082 | C2RxInterrupt | _C2RxInterrupt | CAN 2 Rx Data Ready |
| 64 | IRQ 56 · 0x000084 | C2Interrupt | _C2Interrupt | CAN 2 combined sources |
| 65 | IRQ 57 · 0x000086 | PWMSpEventMatchInterrupt | _PWMSpEventMatchInterrupt | PWM special event match |
| 73 | IRQ 65 · 0x000096 | U1ErrInterrupt | _U1ErrInterrupt | UART1 Error |
| 74 | IRQ 66 · 0x000098 | U2ErrInterrupt | _U2ErrInterrupt | UART2 Error |
| 78 | IRQ 70 · 0x0000A0 | C1TxInterrupt | _C1TxInterrupt | CAN 1 Tx Data Request |
| 79 | IRQ 71 · 0x0000A2 | C2TxInterrupt | _C2TxInterrupt | CAN 2 Tx Data Request |
| 81 | IRQ 73 · 0x0000A6 | PWMSecSpEventMatchInterrupt | _PWMSecSpEventMatchInterrupt | PWM secondary special event match |
| 98 | IRQ 90 · 0x0000C8 | SPI3TXInterrupt | _SPI3TXInterrupt | SPI3 Transfer Done |
| 99 | IRQ 91 · 0x0000CA | SPI3RXInterrupt | _SPI3RXInterrupt | SPI3 Receive Done |
| 102 | IRQ 94 · 0x0000D0 | PWM1Interrupt | _PWM1Interrupt | PWM1 Interrupt |
| 103 | IRQ 95 · 0x0000D2 | PWM2Interrupt | _PWM2Interrupt | PWM2 Interrupt |
| 104 | IRQ 96 · 0x0000D4 | PWM3Interrupt | _PWM3Interrupt | PWM3 Interrupt |
| 105 | IRQ 97 · 0x0000D6 | PWM4Interrupt | _PWM4Interrupt | PWM4 Interrupt |
| 106 | IRQ 98 · 0x0000D8 | PWM5Interrupt | _PWM5Interrupt | PWM5 Interrupt |
| 107 | IRQ 99 · 0x0000DA | PWM6Interrupt | _PWM6Interrupt | PWM Generator 6 |
| 108 | IRQ 100 · 0x0000DC | PWM7Interrupt | _PWM7Interrupt | PWM Generator 7 |
| 109 | IRQ 101 · 0x0000DE | PWM8Interrupt | _PWM8Interrupt | PWM Generator 8 |
| 111 | IRQ 103 · 0x0000E2 | CMP2Interrupt | _CMP2Interrupt | Analog Comparator 2 Interrupt |
| 112 | IRQ 104 · 0x0000E4 | CMP3Interrupt | _CMP3Interrupt | Analog Comparator 3 Interrupt |
| 113 | IRQ 105 · 0x0000E6 | CMP4Interrupt | _CMP4Interrupt | Analog Comparator 4 Interrupt |
| 118 | IRQ 110 · 0x0000F0 | ADCAN0Interrupt | _ADCAN0Interrupt | ADC AN0 Convert Done |
| 119 | IRQ 111 · 0x0000F2 | ADCAN1Interrupt | _ADCAN1Interrupt | ADC AN1 Convert Done |
| 120 | IRQ 112 · 0x0000F4 | ADCAN2Interrupt | _ADCAN2Interrupt | ADC AN2 Convert Done |
| 121 | IRQ 113 · 0x0000F6 | ADCAN3Interrupt | _ADCAN3Interrupt | ADC AN3 Convert Done |
| 122 | IRQ 114 · 0x0000F8 | ADCAN4Interrupt | _ADCAN4Interrupt | ADC AN4 Convert Done |
| 123 | IRQ 115 · 0x0000FA | ADCAN5Interrupt | _ADCAN5Interrupt | ADC AN5 Convert Done |
| 124 | IRQ 116 · 0x0000FC | ADCAN6Interrupt | _ADCAN6Interrupt | ADC AN6 Convert Done |
| 125 | IRQ 117 · 0x0000FE | ADCAN7Interrupt | _ADCAN7Interrupt | ADC AN7 Convert Done |
| 132 | IRQ 124 · 0x00010C | SPI1GInterrupt | _SPI1GInterrupt | SPI1 General Error |
| 133 | IRQ 125 · 0x00010E | SPI2GInterrupt | _SPI2GInterrupt | SPI2 General Error |
| 134 | IRQ 126 · 0x000110 | SPI3GInterrupt | _SPI3GInterrupt | SPI3 General Error |
| 146 | IRQ 138 · 0x000128 | CLC1Interrupt | _CLC1Interrupt | CLC1 |
| 147 | IRQ 139 · 0x00012A | CLC2Interrupt | _CLC2Interrupt | CLC2 |
| 148 | IRQ 140 · 0x00012C | CLC3Interrupt | _CLC3Interrupt | CLC3 |
| 149 | IRQ 141 · 0x00012E | CLC4Interrupt | _CLC4Interrupt | CLC4 |
| 150 | IRQ 142 · 0x000130 | ICDInterrupt | _ICDInterrupt | ICD Application |
| 151 | IRQ 143 · 0x000132 | JTAGInterrupt | _JTAGInterrupt | JTAG Programming |
| 153 | IRQ 145 · 0x000136 | PTGStepInterrupt | _PTGStepInterrupt | PTG Step |
| 154 | IRQ 146 · 0x000138 | PTGWDTInterrupt | _PTGWDTInterrupt | PTG Watchdog Timeout |
| 155 | IRQ 147 · 0x00013A | PTG0Interrupt | _PTG0Interrupt | PTG Internal Trigger 0 |
| 156 | IRQ 148 · 0x00013C | PTG1Interrupt | _PTG1Interrupt | PTG Internal Trigger 1 |
| 157 | IRQ 149 · 0x00013E | PTG2Interrupt | _PTG2Interrupt | PTG Internal Trigger 2 |
| 158 | IRQ 150 · 0x000140 | PTG3Interrupt | _PTG3Interrupt | PTG Internal Trigger 3 |
| 159 | IRQ 151 · 0x000142 | ADCAN8Interrupt | _ADCAN8Interrupt | ADC AN8 Convert Done |
| 160 | IRQ 152 · 0x000144 | ADCAN9Interrupt | _ADCAN9Interrupt | ADC AN9 Convert Done |
| 161 | IRQ 153 · 0x000146 | ADCAN10Interrupt | _ADCAN10Interrupt | ADC AN10 Convert Done |
| 162 | IRQ 154 · 0x000148 | ADCAN11Interrupt | _ADCAN11Interrupt | ADC AN11 Convert Done |
| 163 | IRQ 155 · 0x00014A | ADCAN12Interrupt | _ADCAN12Interrupt | ADC AN12 Convert Done |
| 164 | IRQ 156 · 0x00014C | ADCAN13Interrupt | _ADCAN13Interrupt | ADC AN13 Convert Done |
| 165 | IRQ 157 · 0x00014E | ADCAN14Interrupt | _ADCAN14Interrupt | ADC AN14 Convert Done |
| 166 | IRQ 158 · 0x000150 | ADCAN15Interrupt | _ADCAN15Interrupt | ADC AN15 Convert Done |
| 167 | IRQ 159 · 0x000152 | ADCAN16Interrupt | _ADCAN16Interrupt | ADC AN16 Convert Done |
| 168 | IRQ 160 · 0x000154 | ADCAN17Interrupt | _ADCAN17Interrupt | ADC AN17 Convert Done |
| 169 | IRQ 161 · 0x000156 | ADCAN18Interrupt | _ADCAN18Interrupt | ADC AN18 Convert Done |
| 170 | IRQ 162 · 0x000158 | ADCAN19Interrupt | _ADCAN19Interrupt | ADC AN19 Convert Done |
| 171 | IRQ 163 · 0x00015A | ADCAN20Interrupt | _ADCAN20Interrupt | ADC AN20 Convert Done |
| 172 | IRQ 164 · 0x00015C | ADCAN21Interrupt | _ADCAN21Interrupt | ADC AN21 Convert Done |
| 181 | IRQ 173 · 0x00016E | I2C1BCInterrupt | _I2C1BCInterrupt | I2C1 Bus Collision |
| 182 | IRQ 174 · 0x000170 | I2C2BCInterrupt | _I2C2BCInterrupt | I2C2 Bus Collision |
| 185 | IRQ 177 · 0x000176 | ADCMP0Interrupt | _ADCMP0Interrupt | ADC Digital Comparator0 Int |
| 186 | IRQ 178 · 0x000178 | ADCMP1Interrupt | _ADCMP1Interrupt | ADC Digital Comparator1 Int |
| 187 | IRQ 179 · 0x00017A | ADFLTR0Interrupt | _ADFLTR0Interrupt | ADC OverSampling Filter 0 Int |
| 188 | IRQ 180 · 0x00017C | ADFLTR1Interrupt | _ADFLTR1Interrupt | ADC OverSampling Filter 1 Int |
| 195 | IRQ 187 · 0x00018A | ADCCore0Interrupt | _ADCCore0Interrupt | ADC Core 0 Early |
| 196 | IRQ 188 · 0x00018C | ADCCore1Interrupt | _ADCCore1Interrupt | ADC Core 1 Early |
| 197 | IRQ 189 · 0x00018E | ADCCore2Interrupt | _ADCCore2Interrupt | ADC Core 2 Early |
| 198 | IRQ 190 · 0x000190 | ADCCore3Interrupt | _ADCCore3Interrupt | ADC Core 3 Early |