Господа, подскажите, как написать программу обработки клавиш устойчивую к дребезгу?
Смысл в чем - есть переменная mode=0; при однократном нажатии на клавишу (подаче сигнала на PB5) значение mode должно увеличиваться на единицу.
ВОт фрагмент моего кода
Код
// Проверяем режим
char ButtonPressed;
............................
ButtonPressed=0;
while (1)
{
DisplayLCD(Mode);
if (bit_is_set(PINB,5))
{
PORTA |=_BV(PA3);
ButtonPressed=1;
}
else
{
PORTA &=~_BV(PA3);
if (ButtonPressed==1)
{
Mode++;
ButtonPressed=0;
}
}
}
Ну... помимо всего программа зажигает диод (PA3). В начале цикла отображает на LCD значение mode. ВОт только при нажатии клавиши у меня получается не числовоя ряд, а постоянная последовательность -1..3..7.. Дребезг?
Как решить проблему?
Спасибо!