我设置了PA13、14、15,分别为上升沿、下降沿、上升沿。,只有上升沿能中断,下降沿不行。请问我该在IO中断函数里怎样判断是哪个口产生了中断,并且是上升沿中断还是下降沿中断。谢谢!(以下是我做的判断)
void GPABCallback(uint32_t GPAStatus, uint32_t GPBStatus)
{
outpw((uint32_t)&GPIOA->DOUT, inpw((uint32_t)&GPIOA->PIN) ^ (1 << 7));
if(0x2000 == (GPAStatus & 0x2000))//GPA13 Rising
{
DrvGPIO_ClrBit(E_GPB, 4);
DrvSYS_Delayms(200);
}
if(0 == (GPAStatus & 0x4000))//GPA14 Falling
{
DrvGPIO_ClrBit(E_GPB, 4);
DrvSYS_Delayms(200);
}
if(0x8000 == (GPAStatus & 0x8000)) //GPA15 Rising
{
DrvGPIO_ClrBit(E_GPB, 4);
DrvSYS_Delayms(200);
}
}
void GPCDCallback(uint32_t GPCStatus, uint32_t GPDStatus)
{
outpw((uint32_t)&GPIOA->DOUT, inpw((uint32_t)&GPIOA->PIN) ^ (1 << 7));
} |