11.4.2 Natural Order (Hardware) Priority

When vectored interrupts are enabled and more than one interrupt with the same user specified priority level is requested, the priority conflict is resolved by using a method called “Natural Order Priority”. Natural order priority is a fixed priority scheme that is based on the IVT.

Table 11-2. Interrupt Vector Priority Table
Vector

Number

Interrupt

source

Vector

Number

(cont.)

Interrupt

source

(cont.)

0x0Software Interrupt0x27PWM1GINT
0x1INT00x28PWM2RINT
0x2INT10x29PWM2GINT
0x3INT20x2ACWG1 (Complementary Waveform Generator)
0x4DMA1SCNT (Direct Memory Access)0x2BCLC1 (Configurable Logic Cell)
0x5DMA1DCNT0x2CCLC2
0x6DMA1OR0x2DCLC3
0x7DMA1A0x2ECLC4
0x8DMA2SCNT (Direct Memory Access)0x2FIOCSR (Interrupt-On-Change Signal Routing Port)
0x9DMA2DCNT0x30U1RX
0xADMA2OR0x31U1TX
0xBDMA2A0x32U1
0xCDMA3SCNT0x33U1E
0xDDMA3DCNT0x34U2RX
0xEDMA3OR0x35U2TX
0xFDMA3A0x36U2
0x10DMA4SCNT0x37U2E
0x11DMA4DCNT0x38SPI1RX (Serial Peripheral Interface)
0x12DMA4OR0x39SPI1TX
0x13DMA4A0x3ASPI1
0x14NVM0x3BI2C1RX
0x15CRC (Cyclic Redundancy Check)0x3CI2C1TX
0x16SCAN0x3DI2C1
0x17ACT (Active Clock Tuning)0x3EI2C1E
0x18CSW (Clock Switching)0x3F-
0x19OSF (Oscillator Fail)0x40I3C1RX
0x1AVDDIO20x41I3C1TX
0x1BVDDIO30x42I3C1
0x1CIOC (Interrupt-On-Change)0x43I3C1E
0x1DTMR00x44I3C1R
0x1ETMR10x45I3C2RX
0x1FTMR1G0x46I3C2TX
0x20TMR20x47I3C2
0x21TMR40x48 - 0x4BI3C2E
0x22TU16A (Universal Timer 16A) 0x4CI3C2R
0x23TU16B (Universal Timer 16B) 0x4DHLVD (High/Low-Voltage Detect)
0x24CCP1 (Capture/Compare/PWM)0x4EAD (ADC Conversion Complete)
0x25CCP2 (Capture/Compare/PWM)0x4FADT (ADC Threshold)
0x26PWM1RINT0x50-

The natural order priority scheme goes from high-to-low with increasing vector numbers, with 0 being the highest priority and decreasing from there.

For example, when two concurrently occurring interrupt sources that are both designated high priority, using the IPRx register will be resolved using the natural order priority (i.e., the interrupt with a lower corresponding vector number will preempt the interrupt with the higher vector number).

The ability for the user to assign every interrupt source to high- or low-priority levels means that the user program can give an interrupt with a low natural priority, a higher overall priority level.