по всякому можно. например вставить в основной цикл это.
Код:
if (PINB.0==0){ per=1; //если нажата кнопка подсоединенная к PINB.0, переменной per присвоить значение 1 delay_ms(200);} // типа антидребезг while(per==1) // сидеть в этом цикле пока per равна 1 { if (PINB.1==0) {per=2; // если нажата кнопка подсоединенная к PINB.1, переменной per присвоить значение 2 delay_ms(200);} // типа антидребезг }
зы. сейчас ктото обязательно скажет что "PINB.0" - зло, и так лучьше не писать. СОГЛАСЕН, но я уже так привык.
как правило время "дребезга" принимают равным 50 мс. и если тупо в лоб, то нажатие кнопки не плохо бы проверять несколько раз в течении например 200 мс.
_________________ С уважением, Денис Железняков aka ZiB Мой блог: http://ziblog.ru
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Учтите что у вас там задержки секундные, вам нужно в таком случае по прерыванию обрабатывать кнопки или написать свою задержку в которой будет опрос кнопок.
если делать правильно, то надо все менять. убрать delay, задержки с помощью таймеров, кнопки можно и в основном цикле опрашивать. общем см цитату выше. а еще можно посмотреть в инете, периодически встречаю "конструкторов светофоров". наверное популярное у преподавателей задание в институтах.
Это не задание преподавателя Просто пришла идея... Где можно хороший самоучитель найти по программированию AVR на C ? А то я весь инет перерыл а ничего нормального не нашёл.
А как без задержек реализовать?
_________________ Опыт растет прямо пропорционально выведенному из строя оборудованию...
Мне очень сильно помогает книга в моей подписи. еще заказал http://www.ukazka.ru/product-book791251.html обещают после нового года. буду Си учить, а то ничего по настоящему сложного писать не получается
задержки прерыванием делают так. Настраиваешь таймер чтоб он тикал раз в секунду. в прерывании выводишь то что тебе надо в порт. и все, до след. прерывания твой контроллер свободен, можешь занять его чем хочешь, например опросом кнопок.
зы. готовый код не проси. задача по плечу начинающему. знаю по себе, т.к. тоже начинающий.
как правило время "дребезга" принимают равным 50 мс. и если тупо в лоб, то нажатие кнопки не плохо бы проверять несколько раз в течении например 200 мс.
если мне не изменяет память, то дребезг большинства низковольтных контактов заканчивается за 10-15 миллисекунд. поэтому делать защиту от дребезга на 50 мс, а тем более 200 мс, - это явно перебор, т.к. человек такую задержку уже может почувствовать.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Это возможно, но в рамках форума трудно. много нюансов. если все описать, то получится не хилая многостраничная обучалка. Возьми почитай книги, статьи и обучалки в интернете. их много. по таймерам, (да и про другое) неплохо рассказано на сайте у дихалта. правда он больше делает упор на ассемблер, говорит с него начать полезней. может быть. по книгам мне понравились Создаем устройства на микроконтроллерах. Белов А В. она дала мне пинок, и помогла сдвинуться с мертвой точки в изучении МК В подписи - просто настольная книга у меня. Практически полный даташит на все меги. и главное на РУССКОМ, что для неучей типа меня просто находка CodeVisionAVR Пособие для начинающих М.Б.Лебедев 2008 мне не понравилась, пустая и не о чем. Программирование на языке С для AVR и PIC микроконтроллеров Шилов. - вроде не плохая. заказал её, жду (В моем городе такой литературы не бывает вообще)
Появился такой вопрос: Например нажал я кнопку, цикл остановился, но таймер все равно считает, как его сбросить перед запуском цикла (нажатием другой кнопки)?
_________________ Опыт растет прямо пропорционально выведенному из строя оборудованию...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения