我同时使用了两个中断引脚,均映射到同一个中断回调函数,但是产生了一次中断就不再响应切换了,这样做存在问题吗?我想知道两个引脚同时产生中断时,CC1310的中断系统是如何处理到来的多个中断的?
#define SEL_PIN_A IOID_25
#define SEL_PIN_B IOID_26
/* Shutdown Button pin table */
PIN_Config ButtonTableShutdown[] = {
SEL_PIN_A | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES,
SEL_PIN_B | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES,
PIN_TERMINATE /* Terminate list */
};
/* Pin interrupt Callback function board buttons configured in the pinTable. */
static void buttonCallbackFunction(PIN_Handle handle, PIN_Id pinId)
{
/* Set current pinId to active */
activeButtonPinId = pinId;
/* Disable interrupts during debounce */
PIN_setConfig(handle, PIN_BM_IRQ, activeButtonPinId | PIN_IRQ_DIS);
/* Debounce logic, only toggle if the button is still pushed (low) */
CPUdelay((uint32_t)((48000000/3)*0.1f)); /* 10ms 延时 */
switch (activeButtonPinId) {
case SEL_PIN_A:
HAL_UART_Transmit("PIN_A",5);
break;
case SEL_PIN_B:
HAL_UART_Transmit("PIN_B",5);
break;
default:break;
}
}