MSP430的芯片,Port 4.5 口是按键,按一下按键,翻转LED灯 P1.1口,我的做法如下,但是总是会出现按键按了,但是LED不翻转的情况,请问大家,按键滤波用什么方法好?
按键采用外部中断的方式进行翻转LED灯
- #pragma vector = PORT4_VECTOR;
- __interrupt void PORT4_ISR(void)
- {
- wait(100);//*delay 100ms
-
- btn_flag ^= 1;
- if (btn_flag == 0)
- {
- GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
- }
- GPIO_clearInterrupt(GPIO_PORT_P4, GPIO_PIN5);
- }
复制代码
此帖出自
小平头技术问答
- #pragma vector = PORT4_VECTOR;
- __interrupt void PORT4_ISR(void)
- {
- wait(30);//*delay 30ms
- if(GPIO_getInputPinValue(GPIO_PORT_P4, GPIO_PIN5) == 0)
- {
- btn_flag ^= 1;
- GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
- }
- GPIO_clearInterrupt(GPIO_PORT_P4, GPIO_PIN5);
- }
复制代码用示波器观察按键低电平的时长,中断延时必须比按键低电平的时长短,不然进不去判断,延时的时间,通过调整,发现30ms的时候,实现结果较好。下面添加了按键IO的电平判断情况,确保是一次按键行为,这种方法,按上个上百次,实验结果是正确的一周热门 更多>