|
在使用IO的外部中断(电平触发)的时候碰到一个问题:中断会莫名奇妙的丢失
(程序运行一段时间后,中断不再触发,但是中断引脚是低电平)
猜想可能是第一次中断退出时,引脚还是低电平,第二次就没办法触发中断了
配置程序是这样的:
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOC ) ;
AT91F_PIO_CfgInput(AT91C_BASE_PIOC,AT91C_PIO_PC11);
AT91F_PIO_CfgPullup(AT91C_BASE_PIOC,AT91C_PIO_PC11);
AT91F_AIC_DisableIt(AT91C_BASE_AIC, AT91C_ID_PIOC);
AT91C_BASE_PIOC->PIO_IDR = AT91C_PIO_PC11; //
AT91C_BASE_PIOC->PIO_IMR = AT91C_PIO_PC11; //
AT91C_BASE_PIOC->PIO_IER = AT91C_PIO_PC11; //
AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,
AT91C_ID_PIOC,
3,
AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,
AT91F_ASM_PIOA28_Handler);
AT91F_PIO_InterruptEnable(AT91C_BASE_PIOC, AT91C_PIO_PC11);
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_PIOC);
中断是处理是这样的:
{
其他操作;
*AT91C_AIC_EOICR = AT91C_BASE_PIOC->PIO_ISR;
}
问下:我的猜想不知道对不对? 这个问题有人碰到过吗? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|