使用BF548的PA10,PA12引脚作为外部IO中断触发,两个共用PIN1中断,同一优先级ivg8。单独初始化一个没问题,两个都初始化,只有一个能进中断ISR。
*pPINT1_ASSIGN的设置是不是有问题?不知道该如何设置
EX_INTERRUPT_HANDLER(IsrPA10)
{
*pPINT1_REQUEST = PA10;
gui_Pb9cnt++;
}
void drv_IO_0_InterruptInit(void)
{
//register interrupt routine
register_handler(ik_ivg8, IsrPA10);
//assign PINT1 interrupt to IVG8
*pSIC_IAR2 &= 0xFFF0FFFFL;
*pSIC_IAR2 = 1<<16;
*pSIC_IMASK0 = IRQ_PINT1;
//enable the PB8 input driver
*pPORTA_INEN = PA10;
//assign PB8 to PINT0 byte 1
*pPINT1_ASSIGN = B1MAP_PAH;
//set to raising edge sensitivity
*pPINT1_INVERT_CLEAR = PA10;
*pPINT1_EDGE_SET = PA10;
//W1C potential latches due to history
*pPINT1_LATCH = PA10;
//unmask interrupts
*pPINT1_MASK_SET = PA10;
}
EX_INTERRUPT_HANDLER(IsrPA12)
{
*pPINT1_REQUEST = PA12;
gui_Pb9cnt++;
}
void drv_IO_1_InterruptInit(void)
{
/* register interrupt routine */
register_handler(ik_ivg8, IsrPA12);
/* assign PINT1 interrupt to IVG12 */
*pSIC_IAR2 &= 0xFFF0FFFFL;
*pSIC_IAR2 = 1<<16;
*pSIC_IMASK0 = IRQ_PINT1;
/* enable the PA12 input driver */
*pPORTA_INEN = PA12;
/* assign PA12 to PINT1 byte 1 */
*pPINT1_ASSIGN = B1MAP_PBH;
/* set to raising edge sensitivity */
*pPINT1_INVERT_CLEAR = PA12;
*pPINT1_EDGE_SET = PA12;
//*pPINT0_EDGE_CLEAR = PB8;
/* W1C potential latches due to history */
*pPINT1_LATCH = PA12;
/* unmask interrupts */
*pPINT1_MASK_SET = PA12;
}