请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR58471 您好!
我正在使用 MSP430FR59471IRHAT 器件。 P2.2输入端定义了一个中断(该中断在信号下降 沿产生)。 当 P2.2上有多个连续脉冲时、微控制器会产生一系列多个中断。 我希望微控制器仅为第一个事件产生中断。 如何防止为所有以下输入变化产生中断?
我已经尝试通过清除 P2IFG 寄存器中的位2来禁用中断。 这没什么帮助。
以下是相关的 ISR 代码:
// P2.2输入的配置: P2DIR &=~BIT2;//将 P2.2设置为输入方向 P2IES |= BIT2;//在 P2.2 P2IFG 的下降沿设置中断标志&=~BIT2;//清除 P2.2 P2IE 上的中断标志|= BIT2;//启用 P2.2上的中断 /--- // 端口2中断服务例程 //--------------- #pragma vector = port2_vector _interrupt void port2_ISR (void) { //P2IE &=~BIT2;//禁用来自 P2.2的附加中断(不禁用进一步的中断) input1EventCounter++; while (delayTimeCounter) { delayTimeCounter--; } P4OUT |= BIT1;//1=>将 SW5_CMD 设置为"ON"状态 P2IFG = 0;//清除 P2IFG 寄存器中的所有中断标志 //P2IE |= BIT2; //从 P2.2重新启用其他中断 }//端口2中断例程结束