2.7.1.11.1 NVIC programming hints
Software uses the CPSIE I and CPSID I instructions to enable and disable interrupts. The CMSIS provides the following intrinsic functions for these instructions:
void __disable_irq(void) // Disable Interrupts
void __enable_irq(void) // Enable Interrupts
In addition, the CMSIS provides a number of functions for NVIC control, including those listed in the following table.
CMSIS interrupt control function | Description |
---|---|
void NVIC_SetPriorityGrouping(uint32_t priority_grouping) | Set the priority grouping |
void NVIC_EnableIRQ(IRQn_t IRQn) | Enable IRQn |
void NVIC_DisableIRQ(IRQn_t IRQn) | Disable IRQn |
uint32_t NVIC_GetPendingIRQ (IRQn_t IRQn) | Return true (IRQ-Number) if IRQn is pending |
void NVIC_SetPendingIRQ (IRQn_t IRQn) | Set IRQn pending |
void NVIC_ClearPendingIRQ (IRQn_t IRQn) | Clear IRQn pending status |
uint32_t NVIC_GetActive (IRQn_t IRQn) | Return the IRQ number of the active interrupt |
void NVIC_SetPriority (IRQn_t IRQn, uint32_t priority) | Set priority for IRQn |
uint32_t NVIC_GetPriority (IRQn_t IRQn) | Read priority of IRQn |
void NVIC_SystemReset (void) | Reset the system |
The input parameter IRQn is the IRQ number, see Table 2-16. For more information about these functions see the CMSIS documentation.