1将GPIOA PIN0-7跟GPIOB PIN0-7 这16根IO设定为input
2:将这两组的IO中断函数都注册到同一个函数IntGPIOHandler();
问题:
问题1:在IntGPIOHandler如何知道是哪个Port(A或者B)产生的中断
问题2:在中断函数中通过GPIOIntStatus(SLAVE_INT_BASE[u8i],0)可以判断哪个PIN被举起来,代表0-7的那根PIN产生中断
问题3:问题2中如果这里有一些PIN的中断是同时来的,eg PIN0跟PIN1,这样GPIOIntStatus(SLAVE_INT_BASE[u8i],0) 读出来的是0x03;这时候通过GPIOIntClear(SLAVE_INT_BASE[u8i],PIN0);将PIN0清掉,退出ISR,因PIN1的还没有清除,原本希望能够因为PIN1再进一次ISR,但实际发现退出后PIN1的ISR也没有来。
以上如何规避?