LPC1768外部中断0触发一次产生多次中断
我使用的是微雪的Open1768开发板,将P2.10配置为上拉,EINT0,下降沿触发中断。中断一次变量加1,并打印出来。我用导线将P2.10脚对地碰了一下,打印了好几次,说明中断了不止一次。请大家指教指教。外部中断0配置(引脚复用配置就不贴):
/* 边沿触发 */
LPC_SYSCTL->EXTMODE |= (1 << 0);
/* 下降沿触发 */
LPC_SYSCTL->EXTPOLAR &= ~(1 << 0);
NVIC_ClearPendingIRQ(EINT0_IRQn);
NVIC_EnableIRQ(EINT0_IRQn);
/* 清中断标志 */
LPC_SYSCTL->EXTINT |= 1 << 0;
外部中断0处理函数:
void EINT0_IRQHandler(void)
{
NVIC_DisableIRQ(EINT0_IRQn);
/* 清中断标志 */
LPC_SYSCTL->EXTINT |= 1 << 0;
if (g_u32RFINTCnt < 0xFFFFFFFF)
{
g_u32RFINTCnt++;
DEBUGOUT("g_u32RFINTCnt = %d\n\r", g_u32RFINTCnt);
}
NVIC_ClearPendingIRQ(EINT0_IRQn);
NVIC_EnableIRQ(EINT0_IRQn);
}
打印出来的数据: 得看一下输入源是什么,如是按键什么的话,是会有这种现像的。可做防抖处理 硬件处理或软件处理一下了。
你那一下,可能不知多少次了 比较好的方式使用信号源产生一个方波然后加上去 这样测试比较好,或者用IO口输出产生下降沿,这样拔插有些粗糙了。。。。。比较推荐用IO口输出去做。 正常,你用导线将P2.10脚对地碰了一下,中间已经抖动了好多次,肯定会产生多次中断。
页:
[1]