по всякому можно. например вставить в основной цикл это.
Код:
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
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
leowka
Заголовок сообщения: Re: Обработка нажатия кнопки в AVR...
Учтите что у вас там задержки секундные, вам нужно в таком случае по прерыванию обрабатывать кнопки или написать свою задержку в которой будет опрос кнопок.
если делать правильно, то надо все менять. убрать delay, задержки с помощью таймеров, кнопки можно и в основном цикле опрашивать. общем см цитату выше. а еще можно посмотреть в инете, периодически встречаю "конструкторов светофоров". наверное популярное у преподавателей задание в институтах.
Это не задание преподавателя Просто пришла идея... Где можно хороший самоучитель найти по программированию AVR на C ? А то я весь инет перерыл а ничего нормального не нашёл.
А как без задержек реализовать?
_________________ Опыт растет прямо пропорционально выведенному из строя оборудованию...
Мне очень сильно помогает книга в моей подписи. еще заказал http://www.ukazka.ru/product-book791251.html обещают после нового года. буду Си учить, а то ничего по настоящему сложного писать не получается
задержки прерыванием делают так. Настраиваешь таймер чтоб он тикал раз в секунду. в прерывании выводишь то что тебе надо в порт. и все, до след. прерывания твой контроллер свободен, можешь занять его чем хочешь, например опросом кнопок.
зы. готовый код не проси. задача по плечу начинающему. знаю по себе, т.к. тоже начинающий.
как правило время "дребезга" принимают равным 50 мс. и если тупо в лоб, то нажатие кнопки не плохо бы проверять несколько раз в течении например 200 мс.
если мне не изменяет память, то дребезг большинства низковольтных контактов заканчивается за 10-15 миллисекунд. поэтому делать защиту от дребезга на 50 мс, а тем более 200 мс, - это явно перебор, т.к. человек такую задержку уже может почувствовать.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Это возможно, но в рамках форума трудно. много нюансов. если все описать, то получится не хилая многостраничная обучалка. Возьми почитай книги, статьи и обучалки в интернете. их много. по таймерам, (да и про другое) неплохо рассказано на сайте у дихалта. правда он больше делает упор на ассемблер, говорит с него начать полезней. может быть. по книгам мне понравились Создаем устройства на микроконтроллерах. Белов А В. она дала мне пинок, и помогла сдвинуться с мертвой точки в изучении МК В подписи - просто настольная книга у меня. Практически полный даташит на все меги. и главное на РУССКОМ, что для неучей типа меня просто находка CodeVisionAVR Пособие для начинающих М.Б.Лебедев 2008 мне не понравилась, пустая и не о чем. Программирование на языке С для AVR и PIC микроконтроллеров Шилов. - вроде не плохая. заказал её, жду (В моем городе такой литературы не бывает вообще)
Появился такой вопрос: Например нажал я кнопку, цикл остановился, но таймер все равно считает, как его сбросить перед запуском цикла (нажатием другой кнопки)?
_________________ Опыт растет прямо пропорционально выведенному из строя оборудованию...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения