您好,
我想使用MSP432计算在端口引脚(上升沿)上触发的高至低边缘上的编码器脉冲数。 我在 中断中提取变量"A"。当上升沿发生中断时,我的计数以1为增量。但我的中断在两个边缘上触发。我得到了1000脉冲,正如我预期的只有500。
程序如下所示:-
Int A = 0;
Void主(void)
{
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;//停止监视程序计时器
P6->DIR &=~BIT0;//将WFP 6.0 设置为输入方向
P6->REN = BIT0;//启用上拉电阻
P6->IFG &=~ BIT0;//已清除WFP 1.4 IFG
P6->IES &=~ BIT0;//高到低
P6->IE |= BIT0;//已启用WFP 1.4 中断
//在NVIC上启用端口1中断
NVIC->ISER[1]= 1<<(PORT6_IRQn)& 31);
//在ISR出口处唤醒
SCB->SCR &=~SCB_SCR_SLEEPONEXIT_MSK;
for (;){}
}
//端口1中断服务例程
void PORT6_IRQHandler (void)
{
IF (P6IFG和BIT0)
{
A=A+1;
}
P6->IFG &=~BIT0;
}
请告诉我代码中的错误位置??
谢谢