標(biāo)題: STM32 外部中斷 消抖和無消抖 求解惑 [打印本頁]

作者: 八仙    時間: 2017-4-8 18:14
標(biāo)題: STM32 外部中斷 消抖和無消抖 求解惑
//消抖        外部中斷3服務(wù)程序
void EXTI3_IRQHandler(void)
{
        delay_ms(10);//消抖
        if(KEY1==0)         //按鍵KEY1
        {                                 
                LED1=!LED1;
        }                 
        EXTI_ClearITPendingBit(EXTI_Line3);  //清除LINE3上的中斷標(biāo)志位  
}
//  無消抖  
void EXTI3_IRQHandler(void)
{
     if(EXTI_GetITStatus(EXTI_Line3)!=RESET)    //判斷標(biāo)號3線上的中斷是否發(fā)生
     {
         LED1=!LED1;
         EXTI_ClearITPendingBit(EXTI_Line3); //清除 LINE 上的中斷標(biāo)志位
    }
}  


不管消不消抖,只要外部中斷按鍵發(fā)生上升沿或下降沿 電平變化,中斷不就發(fā)生了嗎,所以第二個不消抖的,還判斷中端是否發(fā)生不就沒意義了嗎?已經(jīng)進入中斷了 標(biāo)志位就已經(jīng)置位了,還檢測 無意義啊、、


作者: yzwzfyz    時間: 2017-4-8 21:59
不用問別人,你把抖動,看成是按了三次、四次按鍵、N次按鈕。
評估一下,與只按一次有何區(qū)別?
作者: 八仙    時間: 2017-4-10 18:05
yzwzfyz 發(fā)表于 2017-4-8 21:59
不用問別人,你把抖動,看成是按了三次、四次按鍵、N次按鈕。
評估一下,與只按一次有何區(qū)別?

不懂

作者: 51Lovers    時間: 2017-4-10 20:00
基本上軟件消抖都是用延時來處理,亦即防止意外電平變化,真實按鍵在上百ms,延時10~20ms再判斷意義重大。
作者: caojunchocjc    時間: 2017-4-10 22:25
如果你不消抖,可能在100ms內(nèi)觸發(fā)很多次,如果觸發(fā)一次小燈變化一次狀態(tài),沒有消抖,你按下可能出發(fā)了很多次,就沒有意義了
作者: 13560380305    時間: 2017-4-10 23:12
多次判斷




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1