标题:
STM32 外部中断 消抖和无消抖 求解惑
[打印本页]
作者:
八仙
时间:
2017-4-8 18:14
标题:
STM32 外部中断 消抖和无消抖 求解惑
//消抖 外部中断3服务程序
void EXTI3_IRQHandler(void)
{
delay_ms(10);//消抖
if(KEY1==0) //按键KEY1
{
LED1=!LED1;
}
EXTI_ClearITPendingBit(EXTI_Line3); //清除LINE3上的中断标志位
}
// 无消抖
void EXTI3_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line3)!=RESET) //判断标号3线上的中断是否发生
{
LED1=!LED1;
EXTI_ClearITPendingBit(EXTI_Line3); //清除 LINE 上的中断标志位
}
}
不管消不消抖,只要外部中断按键发生上升沿或下降沿 电平变化,中断不就发生了吗,所以第二个不消抖的,还判断中端是否发生不就没意义了吗?已经进入中断了 标志位就已经置位了,还检测 无意义啊、、
作者:
yzwzfyz
时间:
2017-4-8 21:59
不用问别人,你把抖动,看成是按了三次、四次按键、N次按钮。
评估一下,与只按一次有何区别?
作者:
八仙
时间:
2017-4-10 18:05
yzwzfyz 发表于 2017-4-8 21:59
不用问别人,你把抖动,看成是按了三次、四次按键、N次按钮。
评估一下,与只按一次有何区别?
不懂
作者:
51Lovers
时间:
2017-4-10 20:00
基本上软件消抖都是用延时来处理,亦即防止意外电平变化,真实按键在上百ms,延时10~20ms再判断意义重大。
作者:
caojunchocjc
时间:
2017-4-10 22:25
如果你不消抖,可能在100ms内触发很多次,如果触发一次小灯变化一次状态,没有消抖,你按下可能出发了很多次,就没有意义了
作者:
13560380305
时间:
2017-4-10 23:12
多次判断
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1