Всем доброго! Только начинаю писать проги в CVAVR, прошу сильно не пинать и по возможности помочь. Делаю индикацию в усилитель на LCD и mega8. Ещё нужны четыре ячейки с LED и кнопками. Кнопку нажали -- лед загорелся и после отпускания горит ещё секунду. Вместо логики задействую мегу, т.к. лсд её нагрузил совсем немного. Без секундной задержки всё путём. А с ней протеус глючит конкретно. ( В железе не пробовал). Понятно, что для сведующего задача на пол-минуты. Будьте добры, поправьте, что не так. В архиве файлы для протеуса, исходник, хекс.
Да, что-то сумбурно получилось. Попробую исправить. Неправильно написанная прога глючит в протеусе . В архиве есть исходник, в него нужно кое-что добавить, что бы при нажатии S5 светик загорелся и при отпускании горел 1-1,5 секунды, и, разумеется, это не мешало отображению символов на лсд от S1-S4. Без этой строчки "delay..." всё в норме. Корректно вписать задержку "образование не позволяет" , вот и прошу помочь. Или проблема в симуляторе, а в железе будет путём? С уважением
Спасибо за внимание! Проблема не в проте, а в программе. Проще испробовать. В архиве же есть всё! 1). Берём ИСХОДНИК, делаем из него хекс, запускаем в проте. Проверяем, всё в норме.То есть: S1-S4 выдают на лсд символы, S5 зажигает лед, при отпускании -- тут же тухнет. (А мне нужно, чтобы горел ещё секунду.) 2). Берём ИСХОДНИК, делаем из него хекс со строчкой "delay_ms(1000)" (как в тексте ISXOD), и в прот. Если будет путём, значит, прога верна , и прабла у меня. "что значит "Глючит"." -- ни одна кнопка не работает с хексом с delay_ms(1000). Как правильно сделать задержку или ещё что, что бы после отпускания S5 лед горел ещё секунду?
Заголовок сообщения: Re: LCD, кнопки и заморочка с LED
Добавлено: Пт сен 13, 2019 08:15:07
Собутыльник Кота
Карма: 38
Рейтинг сообщений: 268
Зарегистрирован: Пт сен 07, 2018 20:20:02 Сообщений: 2723 Откуда: деревня в Тульской губернии
Рейтинг сообщения:1 Медали: 1
Sergbern, когда на PINB.7 низкий уровень Вы делаете задержку на 1 секунду не только свечения светодиода, а всего цикла опроса кнопок. То есть, для срабатывания любой кнопки ее надо удерживать больше секунды. Заведите переменную счетчик, а в последних двух if используйте ее. Например, так:
В вашем случае мало научиться писать на си, нужно научиться программированию. Язык не важен, важны принципы программирования. Также, нужно понимать, что это ПРОЕКТ. И исходить именно с этой позиции. Для новичка вы рано замахнулись на такой проект. Поэтому, попунктно: Проектирование сверху вниз. Устройство - декомпозиция на блоки, модули до атомарности. Программирование: Логическое разделение программы на программные блоки, модули. Кнопки отдельно, дисплей отдельно, светодиоды отдельно. Взаимодействие программных модулей. Псевдопараллельная работа программных модулей. Автоматное программирование. Конечные автоматы.
Сейчас этот форум просматривают: Alerr и гости: 40
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения