Ср янв 10, 2018 06:53:08
DDRX&=~(1<<Y); //DDRX.Y=0; устанавливаем ногу на вход.
PORTX|=(1<<Y); //PORTX.Y=1; включаем подтягивающий резистор (внутри МК).
...
//теперь PINX&(1<<Y) //PINX.Y отражает состояние входа (и кнопки) 0-нажата, не 0 - не нажата
//(тут важно - "не 0" это не обязательно 1, конструкция PINX&(1<<Y) при отпущенной кнопке принимает значение 2^Y)
if ((PINX&(1<<Y))==0)
{
delay_us(100); //задержка перед повторной проверкой кнопки
if ((PINX&(1<<Y))==0) {действия при нажатой кнопке};
};
Ср янв 10, 2018 07:23:51
самый простой пример антидребезга:
я ... решил ...описать преимущества и недостатки того или иного метода...
довольно часто в поделках (причем не только любительских)
Ср янв 10, 2018 08:28:40
студии под рукой нет, КВАВР отрабатывает обе, результат одинаковый: CBI 0x12,1 , но, если написать типа PORTA&=~(1<<0|1<<1); (изменяем несколько бит) то тут обработка будет через регистр (чтение всего порта, правка регистра, запись в порт).pyzhman писал(а):Попробуйте писать в AtmelStudio и в CodeVision. Посмотрите результаты компиляции в обеих программах.
дельное замечание...надо хоть ссылочкой подкрепитьpyzhman писал(а):Вот так вот, с места в карьер...что такое дребезг?
самый большой недостаток - применение программной задержки Delay_us(); - "благодаря" ей приостанавливается выполнение вычислений, ещё из недостатков - слежение за кнопкой происходит программно, и если контроллер занят чем-то другим (возможно отрабатывает чью-то задержку ) нажатие кнопки может быть пропущено...pyzhman писал(а):Где оные для "самого простого примера"?
Ср янв 10, 2018 08:37:04
зряIvanoff-iv писал(а):как считаете, вообще тема нужная или я это зря затеял?
Ср янв 10, 2018 10:21:07
Ср янв 10, 2018 10:21:29
Ср янв 10, 2018 10:41:16
ну и на счет delay() они тоже моими стараниями не так однозначны.Jack_A писал(а):Насчет go to мнения разделились
Ср янв 10, 2018 10:46:42
Пока_без_кота писал(а):...подход с задержками неправильный...
Ср янв 10, 2018 11:28:18
Ср янв 10, 2018 16:15:01
ARV писал(а):да, кстати, о каком топике вы говорили? что-то пропустил я холиварчик ...
Ср янв 10, 2018 22:13:48
Ср янв 10, 2018 23:30:44
Ср янв 10, 2018 23:58:42
вообще тема нужная или я это зря затеял?
Чт янв 11, 2018 05:43:05
Примеры в студию. Особенно того, что в скобках.довольно часто в поделках (причем не только любительских)
Чт янв 11, 2018 05:59:17
Чт янв 11, 2018 06:55:27
ну так консенсус же был достигнут на фразеJack_A писал(а):Дык это наша с вами дискуссия и была,
, а тут снова категоричность в заявленииJack_A писал(а):Даже в этом ответе - сомневаюсь
Jack_A писал(а):тупо delay - зло абсолютное и должно быть игнорируемо
люто плюсую!Flasher писал(а):Самый четкий признак профнепригодности- категоричный бред.
philosoraptor писал(а):В адекватном же коде опрос вызывается по переполнению таймера каждые ~200 ms из основного цикла.
Чт янв 11, 2018 07:27:30
Чт янв 11, 2018 11:00:01
Чт янв 11, 2018 11:17:37
ну вы даёте! это же mauvais ton! а если кнопок 10 - это ж сколько обвеса дополнительного?! решение всех проблем программно (ну или аппартно встроенными в МК средствами) - вот наш выбор!Jack_A писал(а):Старая добрая RC решает проблему
Чт янв 11, 2018 11:58:53