Устранение дребезга при обнаружении stm32f4

void EXTI3_IRQHandler(void){


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

    count++;    


}

Это моя процедура прерывания. если нажать кнопку, произойдет прерывание, а значение счетчика увеличится. Я не знаю, как решить проблему с отскоком кнопки. Помогите пожалуйста мне!


person Ayberk Karaakın    schedule 19.11.2016    source источник


Ответы (1)


Обычно это включает чтение ввода после небольшой задержки.

В обработчике прерывания очистите бит ожидания и установите флаг в значение true.

В вашем основном цикле проверьте, является ли флаг истинным. Если это так, добавьте задержку (например, 20 мс), прочитайте ввод и снимите флажок.

Если задержка неприемлема в вашем приложении, сделайте то же самое с таймером.

person Guillaume Michel    schedule 22.11.2016