FAQ
- M051 Base Series(95)
- M0518 Series(97)
- M0519 Series(43)
- M0564 Series(1)
- Mini51 Base Series(90)
- Nano100/102 Base Series(101)
- Nano103 Base Series(10)
- Nano110/112 LCD Series(100)
- Nano120 USB Series(111)
- Nano130 Advanced Series(110)
- NUC029 Series(94)
- NUC100/200 Advanced Series(102)
- NUC120/122/123/220 USB Series(116)
- NUC121/125 Series(1)
- NUC126 USB Series(2)
- NUC130/230 CAN Series(103)
- NUC131/NUC1311 CAN Series(98)
- NUC140/240 Connectivity Series(114)
- M451 Base Series(118)
- M451M Series(117)
- M452 USB Series(130)
- M4521 USB Series(1)
- M453 CAN Series(128)
- M463 CAN FD/USB HS Series(1)
- M467 Ethernet/Crypto Series(1)
- M471 Series(1)
- M479 Motor Control Series(1)
- M481 Base Series(4)
- M482 USB FS OTG Series(4)
- M483 CAN Series(4)
- M484 USB HS OTG Series(4)
- M485 Crypto Series(4)
- M487 Ethernet Series(4)
- M4TK Touch Key Series(25)
- NUC442/472 Series(130)
- NUC472 Series(1)
- NUC505 Series(138)
FAQ
How to determine a GPIO interrupt trigger source? Issue Date:2018-01-16
For the M051 series in the NuMicro® family, for example, the GP01_INT interrupt handler is shared by 16 pins of P0 [7: 0] and P1 [7: 0]. After an interrupt is triggered and the GP01_INT interrupt handler is entered, it is needed to determine a trigger source for the corresponding action.
Table 1 M051 Interrupt Mapping Table
Interrupt Name |
Interrupt Description |
GP01_INT |
External signal interrupt from P0[7:0] / P1[7:0] |
When an interrupt is triggered, the interrupt flag of the corresponding pin will be set, and the interrupt flag in the ISRC register can be sequentially checked to determine the trigger source. Refer to the following example.
#define GPIO_GET_INT_FLAG(port, u32PinMask) ((port)->ISRC & (u32PinMask))
void GPIOP0P1_IRQHandler(void)
{
if(GPIO_GET_INT_FLAG(P1, BIT3))
{
//To check if P1.3 interrupt occurred
GPIO_CLR_INT_FLAG(P1, BIT3);
//do something…
}
else if(GPIO_GET_INT_FLAG(P1, BIT4))
{
//To check if P1.4 interrupt occurred
GPIO_CLR_INT_FLAG(P1, BIT4);
//do something…
}
else if(GPIO_GET_INT_FLAG(P1, BIT5))
{
//To check if P1.5 interrupt occurred
GPIO_CLR_INT_FLAG(P1, BIT5);
//do something…
}
}
Products: | Microcontrollers ,8bit 8051 MCUs ,Arm Cortex-M0 MCUs ,Arm Cortex-M4 MCUs |
---|---|
Applications: | |
Function: | Peripherals,ARM,Interrupt,I/O,External Interrupt,GPIO |