tianxiaoMCU 发表于 2015-2-10 11:58:12

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);
}

打印出来的数据:

z31com 发表于 2015-2-10 12:40:36

得看一下输入源是什么,如是按键什么的话,是会有这种现像的。可做防抖处理

Excellence 发表于 2015-2-10 12:59:28

硬件处理或软件处理一下了。

ccyhyxt 发表于 2015-2-10 13:01:37

你那一下,可能不知多少次了

BraveRichard 发表于 2015-8-10 11:38:54

比较好的方式使用信号源产生一个方波然后加上去 这样测试比较好,或者用IO口输出产生下降沿,这样拔插有些粗糙了。。。。。比较推荐用IO口输出去做。

ryq0110 发表于 2015-8-10 11:52:22

正常,你用导线将P2.10脚对地碰了一下,中间已经抖动了好多次,肯定会产生多次中断。
页: [1]
查看完整版本: LPC1768外部中断0触发一次产生多次中断