现在研究你们CH552单片机,SOP16封装,测试GPIO中断,因为要实现编码器,P1.4和P1.5同时设置为下降沿中断,代码如下,请问在GPIOInterrupt中断服务函数里面,怎么判断是哪个GPIO产生了下降沿中断呢?目前示例程序只有一句打印printf("GPIO_STATUS: %02x\n",(UINT16)(PIN_FUNC&bIO_INT_ACT)); 似乎只能知道是有下降沿产生了,具体是哪个GPIO,从哪里知道呢
void GPIOInterruptCfg() { GPIO_IE &= ~bIE_IO_EDGE; GPIO_IE |= bIE_IO_EDGE; // edge trigger GPIO_IE |= bIE_P1_4_LO; // GPIO P1.4 falling edge GPIO_IE |= bIE_P1_5_LO; // GPIO P1.5 falling edge GPIO_IE |= bIE_P3_1_LO; // GPIO P3.1 falling edge(button pressed) IE_GPIO = 1; //GPIO???????? }