dsPIC33CH64MP508 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 138 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 | T1Interrupt | _T1Interrupt | Timer 1 |
| 10 | IRQ 2 · 0x000018 | CNAInterrupt | _CNAInterrupt | Change Notification A |
| 11 | IRQ 3 · 0x00001A | CNBInterrupt | _CNBInterrupt | Change Notification B |
| 12 | IRQ 4 · 0x00001C | DMA0Interrupt | _DMA0Interrupt | DMA Channel 0 |
| 14 | IRQ 6 · 0x000020 | CCP1Interrupt | _CCP1Interrupt | CCP1 Capture/Compare Event |
| 15 | IRQ 7 · 0x000022 | CCT1Interrupt | _CCT1Interrupt | CCP1 Timer Event |
| 16 | IRQ 8 · 0x000024 | DMA1Interrupt | _DMA1Interrupt | DMA Channel 1 |
| 17 | IRQ 9 · 0x000026 | SPI1RXInterrupt | _SPI1RXInterrupt | SPI1 RX |
| 18 | IRQ 10 · 0x000028 | SPI1TXInterrupt | _SPI1TXInterrupt | SPI1 TX |
| 19 | IRQ 11 · 0x00002A | U1RXInterrupt | _U1RXInterrupt | UART1 RX |
| 20 | IRQ 12 · 0x00002C | U1TXInterrupt | _U1TXInterrupt | UART1 TX |
| 21 | IRQ 13 · 0x00002E | ECCSBEInterrupt | _ECCSBEInterrupt | ECC Single Bit Error |
| 22 | IRQ 14 · 0x000030 | NVMInterrupt | _NVMInterrupt | NVM Write complete |
| 23 | IRQ 15 · 0x000032 | INT1Interrupt | _INT1Interrupt | External Interrupt 1 |
| 24 | IRQ 16 · 0x000034 | SI2C1Interrupt | _SI2C1Interrupt | I2C1 Slave Event |
| 25 | IRQ 17 · 0x000036 | MI2C1Interrupt | _MI2C1Interrupt | I2C1 Master Event |
| 26 | IRQ 18 · 0x000038 | DMA2Interrupt | _DMA2Interrupt | DMA Channel 2 |
| 27 | IRQ 19 · 0x00003A | CNCInterrupt | _CNCInterrupt | Change Notification C |
| 28 | IRQ 20 · 0x00003C | INT2Interrupt | _INT2Interrupt | External Interrupt 2 |
| 29 | IRQ 21 · 0x00003E | DMA3Interrupt | _DMA3Interrupt | DMA Channel 3 |
| 30 | IRQ 22 · 0x000040 | DMA4Interrupt | _DMA4Interrupt | DMA Channel 4 |
| 31 | IRQ 23 · 0x000042 | CCP2Interrupt | _CCP2Interrupt | CCP2 Capture/Compare Event |
| 32 | IRQ 24 · 0x000044 | CCT2Interrupt | _CCT2Interrupt | CCP2 Timer Event |
| 33 | IRQ 25 · 0x000046 | C1Interrupt | _C1Interrupt | CAN 1 Combined Error |
| 34 | IRQ 26 · 0x000048 | INT3Interrupt | _INT3Interrupt | External Interrupt 3 |
| 35 | IRQ 27 · 0x00004A | U2RXInterrupt | _U2RXInterrupt | UART2 RX |
| 36 | IRQ 28 · 0x00004C | U2TXInterrupt | _U2TXInterrupt | UART2 TX |
| 37 | IRQ 29 · 0x00004E | SPI2RXInterrupt | _SPI2RXInterrupt | SPI2 RX |
| 38 | IRQ 30 · 0x000050 | SPI2TXInterrupt | _SPI2TXInterrupt | SPI2 TX |
| 39 | IRQ 31 · 0x000052 | C1RXInterrupt | _C1RXInterrupt | CAN 1 Data Ready |
| 42 | IRQ 34 · 0x000058 | DMA5Interrupt | _DMA5Interrupt | DMA Channel 5 |
| 43 | IRQ 35 · 0x00005A | CCP3Interrupt | _CCP3Interrupt | CCP3 Capture/Compare Event |
| 44 | IRQ 36 · 0x00005C | CCT3Interrupt | _CCT3Interrupt | CCP3 Timer Event |
| 45 | IRQ 37 · 0x00005E | SI2C2Interrupt | _SI2C2Interrupt | I2C2 Slave Event |
| 46 | IRQ 38 · 0x000060 | MI2C2Interrupt | _MI2C2Interrupt | I2C2 Master Event |
| 48 | IRQ 40 · 0x000064 | CCP4Interrupt | _CCP4Interrupt | CCP4 Capture/Compare Event |
| 49 | IRQ 41 · 0x000066 | CCT4Interrupt | _CCT4Interrupt | CCP4 Timer Event |
| 51 | IRQ 43 · 0x00006A | CCP5Interrupt | _CCP5Interrupt | CCP5 Capture/Compare Event |
| 52 | IRQ 44 · 0x00006C | CCT5Interrupt | _CCT5Interrupt | CCP5 Timer Event |
| 53 | IRQ 45 · 0x00006E | DMTInterrupt | _DMTInterrupt | Dead Man Timer |
| 54 | IRQ 46 · 0x000070 | CCP6Interrupt | _CCP6Interrupt | CCP6 Capture/Compare Event |
| 55 | IRQ 47 · 0x000072 | CCT6Interrupt | _CCT6Interrupt | CCP6 Timer Event |
| 56 | IRQ 48 · 0x000074 | QEI1Interrupt | _QEI1Interrupt | Position Counter Compare |
| 57 | IRQ 49 · 0x000076 | U1EInterrupt | _U1EInterrupt | UART1 Error Interrupt |
| 58 | IRQ 50 · 0x000078 | U2EInterrupt | _U2EInterrupt | UART2 Error Interrupt |
| 59 | IRQ 51 · 0x00007A | CRCInterrupt | _CRCInterrupt | CRC Generator Interrupt |
| 60 | IRQ 52 · 0x00007C | C1TXInterrupt | _C1TXInterrupt | CAN 1 TX Data Request |
| 69 | IRQ 61 · 0x00008E | ICDInterrupt | _ICDInterrupt | ICD App In |
| 70 | IRQ 62 · 0x000090 | JTAGInterrupt | _JTAGInterrupt | JTAG Programming |
| 71 | IRQ 63 · 0x000092 | PTGSTEPInterrupt | _PTGSTEPInterrupt | PTG Step |
| 72 | IRQ 64 · 0x000094 | I2C1BCInterrupt | _I2C1BCInterrupt | I2C1 Bus Collision |
| 73 | IRQ 65 · 0x000096 | I2C2BCInterrupt | _I2C2BCInterrupt | I2C2 Bus Collision |
| 75 | IRQ 67 · 0x00009A | PWM1Interrupt | _PWM1Interrupt | PWM Generator 1 |
| 76 | IRQ 68 · 0x00009C | PWM2Interrupt | _PWM2Interrupt | PWM Generator 2 |
| 77 | IRQ 69 · 0x00009E | PWM3Interrupt | _PWM3Interrupt | PWM Generator 3 |
| 78 | IRQ 70 · 0x0000A0 | PWM4Interrupt | _PWM4Interrupt | PWM Generator 4 |
| 83 | IRQ 75 · 0x0000AA | CNDInterrupt | _CNDInterrupt | Change Notification D |
| 84 | IRQ 76 · 0x0000AC | CNEInterrupt | _CNEInterrupt | Change Notification E |
| 85 | IRQ 77 · 0x0000AE | CMP1Interrupt | _CMP1Interrupt | Master Comparator 1 |
| 89 | IRQ 81 · 0x0000B6 | PTGWDTInterrupt | _PTGWDTInterrupt | PTG Watchdog Time Out Interrupt |
| 90 | IRQ 82 · 0x0000B8 | PTG0Interrupt | _PTG0Interrupt | PTG Trigger 0 |
| 91 | IRQ 83 · 0x0000BA | PTG1Interrupt | _PTG1Interrupt | PTG Trigger 1 |
| 92 | IRQ 84 · 0x0000BC | PTG2Interrupt | _PTG2Interrupt | PTG Trigger 2 |
| 93 | IRQ 85 · 0x0000BE | PTG3Interrupt | _PTG3Interrupt | PTG Trigger 3 |
| 94 | IRQ 86 · 0x0000C0 | SENT1Interrupt | _SENT1Interrupt | SENT1 TX/RX |
| 95 | IRQ 87 · 0x0000C2 | SENT1EInterrupt | _SENT1EInterrupt | SENT1 Error |
| 96 | IRQ 88 · 0x0000C4 | SENT2Interrupt | _SENT2Interrupt | SENT2 TX/RX |
| 97 | IRQ 89 · 0x0000C6 | SENT2EInterrupt | _SENT2EInterrupt | SENT2 Error |
| 98 | IRQ 90 · 0x0000C8 | ADCInterrupt | _ADCInterrupt | ADC Global Interrupt |
| 99 | IRQ 91 · 0x0000CA | ADCAN0Interrupt | _ADCAN0Interrupt | ADC AN0 Convert Done |
| 100 | IRQ 92 · 0x0000CC | ADCAN1Interrupt | _ADCAN1Interrupt | ADC AN1 Convert Done |
| 101 | IRQ 93 · 0x0000CE | ADCAN2Interrupt | _ADCAN2Interrupt | ADC AN2 Convert Done |
| 102 | IRQ 94 · 0x0000D0 | ADCAN3Interrupt | _ADCAN3Interrupt | ADC AN3 Convert Done |
| 103 | IRQ 95 · 0x0000D2 | ADCAN4Interrupt | _ADCAN4Interrupt | ADC AN4 Convert Done |
| 104 | IRQ 96 · 0x0000D4 | ADCAN5Interrupt | _ADCAN5Interrupt | ADC AN5 Convert Done |
| 105 | IRQ 97 · 0x0000D6 | ADCAN6Interrupt | _ADCAN6Interrupt | ADC AN6 Convert Done |
| 106 | IRQ 98 · 0x0000D8 | ADCAN7Interrupt | _ADCAN7Interrupt | ADC AN7 Convert Done |
| 107 | IRQ 99 · 0x0000DA | ADCAN8Interrupt | _ADCAN8Interrupt | ADC AN8 Convert Done |
| 108 | IRQ 100 · 0x0000DC | ADCAN9Interrupt | _ADCAN9Interrupt | ADC AN9 Convert Done |
| 109 | IRQ 101 · 0x0000DE | ADCAN10Interrupt | _ADCAN10Interrupt | ADC AN10 Convert Done |
| 110 | IRQ 102 · 0x0000E0 | ADCAN11Interrupt | _ADCAN11Interrupt | ADC AN11 Convert Done |
| 111 | IRQ 103 · 0x0000E2 | ADCAN12Interrupt | _ADCAN12Interrupt | ADC AN12 Convert Done |
| 112 | IRQ 104 · 0x0000E4 | ADCAN13Interrupt | _ADCAN13Interrupt | ADC AN13 Convert Done |
| 113 | IRQ 105 · 0x0000E6 | ADCAN14Interrupt | _ADCAN14Interrupt | ADC AN14 Convert Done |
| 114 | IRQ 106 · 0x0000E8 | ADCAN15Interrupt | _ADCAN15Interrupt | ADC AN15 Convert Done |
| 115 | IRQ 107 · 0x0000EA | ADCAN16Interrupt | _ADCAN16Interrupt | ADC AN16 Convert Done |
| 116 | IRQ 108 · 0x0000EC | ADCAN17Interrupt | _ADCAN17Interrupt | ADC AN17 Convert Done |
| 117 | IRQ 109 · 0x0000EE | ADCAN18Interrupt | _ADCAN18Interrupt | ADC AN18 Convert Done |
| 118 | IRQ 110 · 0x0000F0 | ADCAN19Interrupt | _ADCAN19Interrupt | ADC AN19 Convert Done |
| 119 | IRQ 111 · 0x0000F2 | ADCAN20Interrupt | _ADCAN20Interrupt | ADC AN20 Convert Done |
| 123 | IRQ 115 · 0x0000FA | ADCFLTInterrupt | _ADCFLTInterrupt | ADC Fault |
| 124 | IRQ 116 · 0x0000FC | ADCMP0Interrupt | _ADCMP0Interrupt | ADC Digital Comparator 1 |
| 125 | IRQ 117 · 0x0000FE | ADCMP1Interrupt | _ADCMP1Interrupt | ADC Digital Comparator 2 |
| 126 | IRQ 118 · 0x000100 | ADCMP2Interrupt | _ADCMP2Interrupt | ADC Digital Comparator 3 |
| 127 | IRQ 119 · 0x000102 | ADCMP3Interrupt | _ADCMP3Interrupt | ADC Digital Comparator 4 |
| 128 | IRQ 120 · 0x000104 | ADFLTR0Interrupt | _ADFLTR0Interrupt | ADC Oversample Filter 1 |
| 129 | IRQ 121 · 0x000106 | ADFLTR1Interrupt | _ADFLTR1Interrupt | ADC Oversample Filter 2 |
| 130 | IRQ 122 · 0x000108 | ADFLTR2Interrupt | _ADFLTR2Interrupt | ADC Oversample Filter 3 |
| 131 | IRQ 123 · 0x00010A | ADFLTR3Interrupt | _ADFLTR3Interrupt | ADC Oversample Filter 4 |
| 132 | IRQ 124 · 0x00010C | CLC1PInterrupt | _CLC1PInterrupt | CLC1 Positive Edge Event |
| 133 | IRQ 125 · 0x00010E | CLC2PInterrupt | _CLC2PInterrupt | CLC2 Positive Edge Event |
| 134 | IRQ 126 · 0x000110 | SPI1Interrupt | _SPI1Interrupt | SPI1 General Interrupt |
| 135 | IRQ 127 · 0x000112 | SPI2Interrupt | _SPI2Interrupt | SPI2 General Interrupt |
| 137 | IRQ 129 · 0x000116 | MSIS1Interrupt | _MSIS1Interrupt | MSI Slave Initiated |
| 138 | IRQ 130 · 0x000118 | MSIAInterrupt | _MSIAInterrupt | MSI Protocol A |
| 139 | IRQ 131 · 0x00011A | MSIBInterrupt | _MSIBInterrupt | MSI Protocol B |
| 140 | IRQ 132 · 0x00011C | MSICInterrupt | _MSICInterrupt | MSI Protocol C |
| 141 | IRQ 133 · 0x00011E | MSIDInterrupt | _MSIDInterrupt | MSI Protocol D |
| 142 | IRQ 134 · 0x000120 | MSIEInterrupt | _MSIEInterrupt | MSI Protocol E |
| 143 | IRQ 135 · 0x000122 | MSIFInterrupt | _MSIFInterrupt | MSI Protocol F |
| 144 | IRQ 136 · 0x000124 | MSIGInterrupt | _MSIGInterrupt | MSI Protocol G |
| 145 | IRQ 137 · 0x000126 | MSIHInterrupt | _MSIHInterrupt | MSI Protocol H |
| 146 | IRQ 138 · 0x000128 | MSIDTInterrupt | _MSIDTInterrupt | MSI Master Read FIFO Data Ready |
| 147 | IRQ 139 · 0x00012A | MSIWFEInterrupt | _MSIWFEInterrupt | MSI Master Write FIFO Empty |
| 148 | IRQ 140 · 0x00012C | MSIFLTInterrupt | _MSIFLTInterrupt | MSI Master R/W FIFO Over/Underflow |
| 149 | IRQ 141 · 0x00012E | S1RSTInterrupt | _S1RSTInterrupt | MSI Slave Reset |
| 154 | IRQ 146 · 0x000138 | S1BRKInterrupt | _S1BRKInterrupt | Slave Break |
| 157 | IRQ 149 · 0x00013E | CCP7Interrupt | _CCP7Interrupt | CCP7 Capture/Compare Event |
| 158 | IRQ 150 · 0x000140 | CCT7Interrupt | _CCT7Interrupt | CCP7 Timer Event |
| 160 | IRQ 152 · 0x000144 | CCP8Interrupt | _CCP8Interrupt | CCP8 Capture/Compare Event |
| 161 | IRQ 153 · 0x000146 | CCT8Interrupt | _CCT8Interrupt | CCP8 Timer Event |
| 165 | IRQ 157 · 0x00014E | S1CLKFInterrupt | _S1CLKFInterrupt | Slave Clock Fail |
| 176 | IRQ 168 · 0x000164 | ADFIFOInterrupt | _ADFIFOInterrupt | ADC FIFO Ready |
| 177 | IRQ 169 · 0x000166 | PEVTAInterrupt | _PEVTAInterrupt | PWM EVENT A |
| 178 | IRQ 170 · 0x000168 | PEVTBInterrupt | _PEVTBInterrupt | PWM EVENT B |
| 179 | IRQ 171 · 0x00016A | PEVTCInterrupt | _PEVTCInterrupt | PWM EVENT C |
| 180 | IRQ 172 · 0x00016C | PEVTDInterrupt | _PEVTDInterrupt | PWM EVENT D |
| 181 | IRQ 173 · 0x00016E | PEVTEInterrupt | _PEVTEInterrupt | PWM EVENT E |
| 182 | IRQ 174 · 0x000170 | PEVTFInterrupt | _PEVTFInterrupt | PWM EVENT F |
| 183 | IRQ 175 · 0x000172 | CLC3PInterrupt | _CLC3PInterrupt | CLC3 Positive Edge Event |
| 184 | IRQ 176 · 0x000174 | CLC4PInterrupt | _CLC4PInterrupt | CLC4 Positive Edge Event |
| 185 | IRQ 177 · 0x000176 | CLC1NInterrupt | _CLC1NInterrupt | CLC1 Negative Edge Event |
| 186 | IRQ 178 · 0x000178 | CLC2NInterrupt | _CLC2NInterrupt | CLC2 Negative Edge Event |
| 187 | IRQ 179 · 0x00017A | CLC3NInterrupt | _CLC3NInterrupt | CLC3 Negative Edge Event |
| 188 | IRQ 180 · 0x00017C | CLC4NInterrupt | _CLC4NInterrupt | CLC4 Negative Edge Event |
| 197 | IRQ 189 · 0x00018E | U1EVTInterrupt | _U1EVTInterrupt | UART1 Event |
| 198 | IRQ 190 · 0x000190 | U2EVTInterrupt | _U2EVTInterrupt | UART2 Event |