2016-11-19 8 views
0
void EXTI3_IRQHandler(void){ 


    //Clear the EXTI pending bits 
    NVIC_ClearPendingIRQ(EXTI3_IRQn); 
    EXTI->PR|=(1<<3); 

    count++;  


} 

これは私の割り込みルーチンです。ボタンを押すとintterrupが発生し、countがインクリメントされます。私はどのようにıがバウンスボタンの問題を解決したか知っています。私を助けてください!stm32f4の検出でデバウンス

答えて

0

これは通常、わずかな遅延の後に入力を読み取ることを伴います。

割り込みハンドラでは、保留中のビットをクリアし、フラグをtrueに設定します。

メインループで、フラグがtrueであることを確認します。そうであれば、遅延(例えば20ms)を加え、入力を読み、フラグをクリアします。

遅延がアプリケーションで許容できない場合は、タイマーと同じ操作を行います。