Пн май 04, 2015 16:04:37
U235 писал(а):-=eagle=- писал(а):...а третья ни в какую не хочет нажиматься...
Может надо так?
- Код:
if(!(PINB&4)) // опрашиваем кнопку 3(+)
{
flag3=1; //кнопка нажата (устанавливаем флаг в 1)
_delay_ms(10); //задержка (защита от дребезга)
}
if(( flag3==1 )&&(PINB&4)) //условие если кнопка была нажата о потом отпущена
{ count++; flag3=0; }
И старайтесь не использовать "магические числа".
Пн май 04, 2015 22:06:41
Вт июн 02, 2015 23:04:46
Ср июн 03, 2015 20:16:39
Чт июн 04, 2015 18:28:10
Alexeyslav писал(а):Нет, это как раз в самый раз. А от кнопок с дребезгом больше 10мс надо избавляться - это уже не дребезг а банально плохой контакт.
Ситуация конечно разной бывает, и не от всех кнопок можно избавится но это исключения.
Чт июн 04, 2015 21:14:52
Пт июн 05, 2015 08:14:05
Alexeyslav писал(а):хардварный - это просто лишние детали. 200мс на реакцию на нажатие? Выбросить и больше никогда не брать эти кнопки.
Откуда берутся такие кнопки? Всё очень просто - ИХ ПОКУПАЮТ. Не надо покупать плохие кнопки, и китай перестанет их делать.
Сб июн 06, 2015 19:54:28
kobaltd писал(а): стоимость кнопки получалась $2 во втором случаи $43 - качество тоже было пропорционально цене
Сб июн 06, 2015 21:12:57
Сб июн 06, 2015 22:23:33
Alexeyslav писал(а):Это мы тут представляем себе кнопочки 5x5мм, а на самом деле кнопки есть довольно громоздкие, например для пульта от подъемника, аварийного отключения, вандалоустойчивые и т.д. такая запросто может стоить 40$ только непонятно нафига такие кнопки напрямую к МК подключать.
Вс июн 07, 2015 03:11:51
Вс июн 07, 2015 09:41:20
Вс июн 07, 2015 10:08:57
Вс июн 07, 2015 10:28:02
Alexeyslav писал(а):Только избыточность. Инкрементировать ничего не нужно, сам опрос каждые N милисекунд избавляет от дребезга контактов. Главное в самой процедуре обработки не считывать значение несколько раз иначе будут проблемы.
Дополнительная защита в виде описанного алгоритма нужна только если кнопки совсем ненадёжны и у них уже не дребезг а наблюдается ненадежный контакт.
Вс июн 07, 2015 11:28:23
Пн июн 08, 2015 08:17:58
B@R5uk писал(а): Какие могут быть проблемы у этого алгоритма?
Вт июн 09, 2015 10:27:39
Никаких... только плюсы...B@R5uk писал(а):Какие могут быть проблемы у этого алгоритма?
Вт июн 09, 2015 16:42:44
Jack_A писал(а):Почти точная цитата из моего ответа
Кстати, триггеры Шмитта по цифровым входам есть в самом AVR, так что достаточно двух резисторов и конденсатора. А если использовать внутренний подтягивающий резистор, то можно аппаратный антидребезг сделать на двух внешних деталях: резисторе и конденсаторе. Только на подтягивающие резисторы допуск большой: 20...50 kΩ. Но с учётом того, что дребезг тоже не особо то нормирован, не думаю, что это страшно.Jack_A писал(а):Ну если прерывание - сложно, то м. быть сделать аппаратный антидребезг ? Цена вопроса - 1 корпус триггеров Шмитта.
Вт июн 09, 2015 19:50:37
Вт июн 09, 2015 21:24:27