Silicon Labs EFM32: Can I set priority on external interrupt pins?
The EFM32 allows up to 16 sources of external interrupts. Two interrupts (interrupt handlers) are provided for 16 interrupt sources. Interrupt handlers are not provided for each of the 16. When an external interrupt occurs, check which pin caused the interrupt in the processing of the interrupt handler, and perform processing according to the result. void GPIO_EVEN_IRQHandler(void);void GPIO_ODD_IRQHandler(void); The figure below is an excerpt from the EFM32LG reference manual "GPIO". It shows the route from the external interrupt pin to the generation of an interrupt. This circuit is prepared for each Pin group (P0, P1...P15).
IRQ_GPIO_EVEN is an interrupt corresponding to even pins (Pin 0, 2, 4, 6, 8, 10, 12, 14) and IRQ_GPIO_ODD is an interrupt corresponding to odd pins (Pin 1, 3, 5, 7, 9, 11, 13, 15) . The priority of IRQ_GPIO_EVEN and IRQ_GPIO_ODD can be changed. Priority cannot be assigned to each pin. (It is not possible to give priority only to Pin 0)
Even if multiple pins satisfy the interrupt conditions at the same time or with a time lag, the interrupt flag register (GPIO_IF, IF[n] in the above figure) reflects the detection results. If multiple flags are set when the interrupt handler confirms which pin was the cause, it may be possible to prioritize processing for them by software.
Experienced FAE
Free consultation is available.
From specific product specifications to parts selection, the Company FAE will answer your technical concerns free of charge. Please feel free to contact us.