5.1.5 Interrupts

AVR and PIC32CM MCUs provide interrupt management systems that enable responsive and efficient handling of asynchronous events from peripherals and external sources. PIC32CM uses the Arm Nested Vectored Interrupt Controller (NVIC), which allows more complex interrupt nesting, priority management, and relocation. Table 5-7 shows a comparison of features between the two.

Table 5-7. AVR® and PIC32CM Interrupt Features
FeatureAVR® CPU Interrupt Controller (CPUINT)PIC32CM Nested Vectored Interrupt Controller (NVIC)
Interrupt PrioritizationTwo levels: Normal (with optional round robin) and High

Four programmable priority levels (M0+)

Eight levels (M23 with Secure/Non-secure split)

Non-Maskable InterruptSupportedSupported
Vector TableSupportedSupported
Interrupt Sources

Peripherals

External pins

Peripherals

External pins

Interrupt Flag HandlingSet/cleared in the peripheral INTFLAGS registerSet/cleared in the peripheral and NVIC registers
Global Enable/DisableSupportedSupported
Response Time (minimum)Four clock cycles15 clock cycles
Priority ConfigurationFixed (except for one high-priority interrupt)Fully programmable per interrupt
Scheduling SchemeOptional round robin for normal priorityHardware-based preemption, and tail-chaining
Security ContextN/ASecure/Non-secure split (M23)
Register AccessByte/word accessibleWord-only (little-endian)