Не корректно выводит информацию на экран LCD 1602 Ребята поясните пожалуйста в чем может быть проблема. Решил сделать таймер на мега 8, для электро двигателя с выводом информации на экран. На экран выводится Верхняя строка 1)напряжение аккумулятора.заряд-разряд. 2)напряжение солнечной батареи. подзарядка акума. 3)ток потребления эл.двигателем. 4)Направление вращения,стрелочки << или >> реверсивное вращение. Нижняя строка. 1)заданное время работы. 2)время работы с отсчетом времени от нуля до заданного времени. 3)номер режима. 4)скорость вращения. 5)знаки пуск >>>, стоп ||| Писал программу (как мог, я только учусь) писал все блоками сначала одно, потом другое и проверял в работе тоже по одиночке. По одиночке все работает, как все соединил в одну кучу вот здесь и началось. Вот сам вопрос: Выводимая инфа работает через раз, то нормально, то местами лезет друг на друга, вместо должных циферок выводит что попало. Как должно быть. Если поиграть кнопками стоп, реверс, пуск выскакивают не понятно какие цифры. Начинает жить своей жизнью. Бывает высвечивает вообще черти что! Перезапуск помогает, бывает цикл отрабатывает нормально, на следующий запуск опять срывает.А бывает с самого начала начинает фальшивить. Все координаты указаны и проверенны досконально, ни где не пересекаются. Заметил это явление в протеусе, грешил на него, думал может не справляется. Собрал в железе, проявилось тоже самое. Ребята может кто подскажет в чем может быть проблема? Все сырое не доделанное, как по мне нужно решить эту проблему ну а потом продолжать дальше.
_________________ Во время поиска небольших радиодеталей, упавших со стола, вероятность их обнаружения прямо пропорциональна размеру детали и обратно пропорциональна их значению для завершения работы
Создайте 2 массива по 16 элементов, каждый для своей строки. Напрямую на экран значение не выводите, изменяйте значение в массиве и выводите целиком строку.
Можете завести таймер для обновления дисплея из массива, скажем, каждые 500 мс. Все изменения в этом массиве будут сами по себе отображаться без вашего участия.
P.S. И, как выше заметили, никаких задержек в прерывании быть не должно.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
lcd_gotoxy(0,1); // Выводим ВРЕМЯ РАБОТЫ В минутАХ lcd_putsf("0"); lcd_gotoxy(7,1); // РЕЖИМ ИЗ ИПРОМ lcd_putsf("0");
......... .........
}
Дальше даже смотреть не стал
Акма писал(а):
для электро двигателя
Очень надеюсь, что эта конструкция будет безопасной для людей
Вы видно не внимательно прочли! Писал программу (как мог, я только учусь)
_________________ Во время поиска небольших радиодеталей, упавших со стола, вероятность их обнаружения прямо пропорциональна размеру детали и обратно пропорциональна их значению для завершения работы
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Вариант который предложил Zhuk72 является универсальным, можно на одни и те же выводы подключить индикатор, кнопки и ещё что-нибудь. Мои наработки по работе с подобным экраном выложены здесь https://ru.files.fm/u/x9d293sku#/list/
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Вариант который предложил Zhuk72 является универсальным, можно на одни и те же выводы подключить индикатор, кнопки и ещё что-нибудь. Мои наработки по работе с подобным экраном выложены здесь https://ru.files.fm/u/x9d293sku#/list/
Спасибо сейчас посмотрю!
_________________ Во время поиска небольших радиодеталей, упавших со стола, вероятность их обнаружения прямо пропорциональна размеру детали и обратно пропорциональна их значению для завершения работы
Вы видно не внимательно прочли! Писал программу (как мог, я только учусь)
Тогда Вам пару простых советов : 1. Почитайте про прерывания. Как они работают, зачем нужны, что они из себя представляют, и т.д... 2. Почитайте про разделяемые ресурсы. И не просто прочитал по-диагонали и всё. А прочитал, понял и дошло в чём ошибка. Ну, и в дополнение : 3. Принять к сведению совет Жука про буфер. 4. Не принимать всерьёз пост от Техника. Полезности для Вас в нём - ноль целых и пару сотых.
Вы видно не внимательно прочли! Писал программу (как мог, я только учусь)
Тогда Вам пару простых советов : 1. Почитайте про прерывания. Как они работают, зачем нужны, что они из себя представляют, и т.д... 2. Почитайте про разделяемые ресурсы. И не просто прочитал по-диагонали и всё. А прочитал, понял и дошло в чём ошибка. Ну, и в дополнение : 3. Принять к сведению совет Жука про буфер. 4. Не принимать всерьёз пост от Техника. Полезности для Вас в нём - ноль целых и пару сотых.
Спасибо!! Я просил совет, то что подсказать некому! А увидел от вас: Дальше даже смотреть не стал и Очень надеюсь, что эта конструкция будет безопасной для людей Эту конструкцию пытаюсь построить для своих целей, но не в коммерческих. В общих чертах кое что прояснилось! Но и былбы благодарен за более глубокие пояснения.
_________________ Во время поиска небольших радиодеталей, упавших со стола, вероятность их обнаружения прямо пропорциональна размеру детали и обратно пропорциональна их значению для завершения работы
Заголовок сообщения: Re: Не корректный вывод информации на экран LCD 1602
Добавлено: Сб мар 06, 2021 10:30:56
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:1 Медали: 1
Акма писал(а):
Но и былбы благодарен за более глубокие пояснения.
Всё очень просто. Все функции, для работы с дисплеем, которые Вы используете, не являются реентерабельными. А Вы их используете в своей программе, как минимум, в трёх разных потоках. Отсюда и проблемы, которые Вы описали в первом посте. Я не зря выделил именно эти куски кода в своём ответе. Это была подсказка, а не насмешка над отсутствием опыта Ещё раз повторюсь :
Цитата:
1. Почитайте про прерывания. Как они работают, зачем нужны, что они из себя представляют, и т.д... 2. Почитайте про разделяемые ресурсы.
Добавлено after 1 minute 2 seconds: PS: Не цитируйте полностью сообщения. Смотрится некрасиво Если нажать кнопку "Редактор", то там можно выделять отдельные части сообщений для цитирования.
... Но и былбы благодарен за более глубокие пояснения.
Для "более глубоких пояснений" нужно быть хорошо ознакомленным как со схемой устройства, так и с самой задумкой ("хотелками") относительно интерфейса. Стыковка ранее отлаженных модулей в новой обобщающей прожке бывает иной раз полностью переделывать прототипы заставляет (это ежли прототип изначально как библиотека не был выполнен). К сожалению под Си только с адуринкой помочь могу.
У абдурины есть ордна проблема, всё наковырено на один delay, если его сдвинуть, то нифига не работает. Перед тем как изучать абдурину, извольте женится на програмисте или выучить нормальный си, только тогда абдурина станет хоть чемто понятным. Возможно её придумали програмисты плохо владеющие разводкой плат, но учителя они вообще никакие
Абсолютно неверное представление об АДУРИНЬЕ. Штука весьма интересная и мощная, но ессно со своей спецификой и ограничениями для простого/продвинутого пользователя. (варианты "школярства" при абсолютном копипасте не рассматривается). Разводка плат там также разная, однако более специализирована для применения последовательного обмена с внешними устройствами, имеющими некоторые "мозги".
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения