Häufig gestellte Fragen

FAQ

如何在程式中判斷GPIO的中斷觸發源?  日期:2018-01-16

以NuMicro®家族系列晶片中的M051來舉例,P0[7:0]與P1[7:0]共16個腳位共用GP01_INT中斷處理函式,因此當中斷觸發並進入GP01_INT中斷處理函式後,需要判斷觸發來源以進行對應動作。

 

表一 M051中斷腳位映射表

Interrupt Name

Interrupt Description

GP01_INT

External signal interrupt from P0[7:0] / P1[7:0]

 

當中斷觸發後,對應腳位的中斷旗標會舉起,可依序檢查ISRC暫存器中的中斷旗標,以判斷觸發來源,請參考下例:

 

#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…

    }

}

產品: 微控制器 ,8 位元 8051 微控制器 ,Arm Cortex-M0 微控制器 ,Arm Cortex-M4 微控制器
應用:
功能: Peripherals,ARM,Interrupt,I/O,External Interrupt,GPIO
本網站使用cookie作為與網站互動時識別瀏覽器之用,瀏覽本網站即表示您同意本網站對cookie的使用及相關隱私權政策
OK