您好!
我正在 YouTube 上的一个示例上、以 通过板载开关 P1.1实施 ISR 来切换 LED P1.0。
除了开关抖动之外、一切都很好-我想知道如何通过软件处理开关抖动、尤其是在中断操作处理时?
下面是我的代码:
//开始主程序
int main (空)
{
//停止看门狗计时器以防止超时复位
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= BIT0; //"设置" P1.0 / LED2 DIR 寄存器(1=输出)
P1OUT &=~BIT0; //"清除" P1.0 / LED2输出寄存器初始值(0 =低电平)
P1DIR &=~BIT1; //清除 P1.1 (开关1;0 =输入)
P1REN |= BIT1; //启用 PU/FPU 电阻器 PD
P1OUT |= BIT1; //将电阻器设置为 pu
P1IES |= BIT1; //中断边沿灵敏度设置 H 到 L
PM5CTL0 &=~μ A LOCKLPM5; //解锁数字 I/O
P1IE |= BIT1; //启用 P1.1 IRQ
__enable_interrupt (); //启用可屏蔽 IRQ
P1IFG &=~BIT1; //清除 P1.1 IRQ 标志
同时 (1){}
返回 0;
}
//设置 ISR
#pragma vector = Port1_vector
__中断 空 ISR_Port1_S1 (空)
{
P1OUT ^= BIT0;
P1IFG &=~BIT1;
}