| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Не корректный вывод информации на экран LCD 1602 https://radiokot.ru/forum/viewtopic.php?f=62&t=175861 |
Страница 1 из 1 |
| Автор: | Акма [ Ср мар 03, 2021 23:40:13 ] | ||
| Заголовок сообщения: | Не корректный вывод информации на экран LCD 1602 | ||
Не корректно выводит информацию на экран LCD 1602 Ребята поясните пожалуйста в чем может быть проблема. Решил сделать таймер на мега 8, для электро двигателя с выводом информации на экран. На экран выводится Верхняя строка 1)напряжение аккумулятора.заряд-разряд. 2)напряжение солнечной батареи. подзарядка акума. 3)ток потребления эл.двигателем. 4)Направление вращения,стрелочки << или >> реверсивное вращение. Нижняя строка. 1)заданное время работы. 2)время работы с отсчетом времени от нуля до заданного времени. 3)номер режима. 4)скорость вращения. 5)знаки пуск >>>, стоп ||| Писал программу (как мог, я только учусь) писал все блоками сначала одно, потом другое и проверял в работе тоже по одиночке. По одиночке все работает, как все соединил в одну кучу вот здесь и началось. Вот сам вопрос: Выводимая инфа работает через раз, то нормально, то местами лезет друг на друга, вместо должных циферок выводит что попало. Как должно быть. ![]() Если поиграть кнопками стоп, реверс, пуск выскакивают не понятно какие цифры. Начинает жить своей жизнью. Бывает высвечивает вообще черти что! Перезапуск помогает, бывает цикл отрабатывает нормально, на следующий запуск опять срывает.А бывает с самого начала начинает фальшивить. Все координаты указаны и проверенны досконально, ни где не пересекаются. Заметил это явление в протеусе, грешил на него, думал может не справляется. Собрал в железе, проявилось тоже самое. Ребята может кто подскажет в чем может быть проблема? Все сырое не доделанное, как по мне нужно решить эту проблему ну а потом продолжать дальше.
|
|||
| Автор: | Аlex [ Чт мар 04, 2021 12:51:00 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Код: interrupt [EXT_INT0] void ext_int0_isr(void)// Дальше даже смотреть не стал { lcd_gotoxy(14,0);// lcd_putsf(">>"); delay_ms(100); ......... ......... } interrupt [EXT_INT1] void ext_int1_isr(void) { ......... delay_ms(100); // Время звучания бип кнопки ......... lcd_gotoxy(0,1); // Выводим ВРЕМЯ РАБОТЫ В минутАХ lcd_putsf("0"); lcd_gotoxy(7,1); // РЕЖИМ ИЗ ИПРОМ lcd_putsf("0"); ......... ......... } Акма писал(а): для электро двигателя Очень надеюсь, что эта конструкция будет безопасной для людей |
|
| Автор: | Zhuk72 [ Чт мар 04, 2021 12:56:04 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Создайте 2 массива по 16 элементов, каждый для своей строки. Напрямую на экран значение не выводите, изменяйте значение в массиве и выводите целиком строку. Можете завести таймер для обновления дисплея из массива, скажем, каждые 500 мс. Все изменения в этом массиве будут сами по себе отображаться без вашего участия. P.S. И, как выше заметили, никаких задержек в прерывании быть не должно. |
|
| Автор: | Акма [ Чт мар 04, 2021 14:15:26 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Код: interrupt [EXT_INT0] void ext_int0_isr(void)// Дальше даже смотреть не стал { lcd_gotoxy(14,0);// lcd_putsf(">>"); delay_ms(100); ......... ......... } interrupt [EXT_INT1] void ext_int1_isr(void) { ......... delay_ms(100); // Время звучания бип кнопки ......... lcd_gotoxy(0,1); // Выводим ВРЕМЯ РАБОТЫ В минутАХ lcd_putsf("0"); lcd_gotoxy(7,1); // РЕЖИМ ИЗ ИПРОМ lcd_putsf("0"); ......... ......... } Акма писал(а): для электро двигателя Очень надеюсь, что эта конструкция будет безопасной для людей Вы видно не внимательно прочли! Писал программу (как мог, я только учусь) |
|
| Автор: | technik-1017 [ Чт мар 04, 2021 16:59:08 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Вариант который предложил Zhuk72 является универсальным, можно на одни и те же выводы подключить индикатор, кнопки и ещё что-нибудь. Мои наработки по работе с подобным экраном выложены здесь https://ru.files.fm/u/x9d293sku#/list/ |
|
| Автор: | Акма [ Чт мар 04, 2021 20:31:50 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Вариант который предложил Zhuk72 является универсальным, можно на одни и те же выводы подключить индикатор, кнопки и ещё что-нибудь. Мои наработки по работе с подобным экраном выложены здесь https://ru.files.fm/u/x9d293sku#/list/ Спасибо сейчас посмотрю! |
|
| Автор: | Аlex [ Чт мар 04, 2021 22:13:32 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Вы видно не внимательно прочли! Тогда Вам пару простых советов :Писал программу (как мог, я только учусь) 1. Почитайте про прерывания. Как они работают, зачем нужны, что они из себя представляют, и т.д... 2. Почитайте про разделяемые ресурсы. И не просто прочитал по-диагонали и всё. А прочитал, понял и дошло в чём ошибка. Ну, и в дополнение : 3. Принять к сведению совет Жука про буфер. 4. Не принимать всерьёз пост от Техника. Полезности для Вас в нём - ноль целых и пару сотых. |
|
| Автор: | Акма [ Сб мар 06, 2021 10:09:13 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Вы видно не внимательно прочли! Тогда Вам пару простых советов :Писал программу (как мог, я только учусь) 1. Почитайте про прерывания. Как они работают, зачем нужны, что они из себя представляют, и т.д... 2. Почитайте про разделяемые ресурсы. И не просто прочитал по-диагонали и всё. А прочитал, понял и дошло в чём ошибка. Ну, и в дополнение : 3. Принять к сведению совет Жука про буфер. 4. Не принимать всерьёз пост от Техника. Полезности для Вас в нём - ноль целых и пару сотых. Спасибо!! Я просил совет, то что подсказать некому! А увидел от вас: Дальше даже смотреть не стал и Очень надеюсь, что эта конструкция будет безопасной для людей Эту конструкцию пытаюсь построить для своих целей, но не в коммерческих. В общих чертах кое что прояснилось! Но и былбы благодарен за более глубокие пояснения. |
|
| Автор: | Аlex [ Сб мар 06, 2021 10:30:56 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Акма писал(а): Но и былбы благодарен за более глубокие пояснения. Всё очень просто.Все функции, для работы с дисплеем, которые Вы используете, не являются реентерабельными. А Вы их используете в своей программе, как минимум, в трёх разных потоках. Отсюда и проблемы, которые Вы описали в первом посте. Я не зря выделил именно эти куски кода в своём ответе. Это была подсказка, а не насмешка над отсутствием опыта Ещё раз повторюсь : Цитата: 1. Почитайте про прерывания. Как они работают, зачем нужны, что они из себя представляют, и т.д... 2. Почитайте про разделяемые ресурсы. Добавлено after 1 minute 2 seconds: PS: Не цитируйте полностью сообщения. Смотрится некрасиво Если нажать кнопку "Редактор", то там можно выделять отдельные части сообщений для цитирования. |
|
| Автор: | BOB51 [ Вс мар 07, 2021 11:05:53 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Заголовок: Не корректный вывод информации на экран LCD 1602 Акма писал(а): ... Но и былбы благодарен за более глубокие пояснения. Для "более глубоких пояснений" нужно быть хорошо ознакомленным как со схемой устройства, так и с самой задумкой ("хотелками") относительно интерфейса. Стыковка ранее отлаженных модулей в новой обобщающей прожке бывает иной раз полностью переделывать прототипы заставляет (это ежли прототип изначально как библиотека не был выполнен). К сожалению под Си только с адуринкой помочь могу.
|
|
| Автор: | 74LS00 [ Ср мар 10, 2021 12:33:26 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
У абдурины есть ордна проблема, всё наковырено на один delay, если его сдвинуть, то нифига не работает. Перед тем как изучать абдурину, извольте женится на програмисте или выучить нормальный си, только тогда абдурина станет хоть чемто понятным. Возможно её придумали програмисты плохо владеющие разводкой плат, но учителя они вообще никакие |
|
| Автор: | BOB51 [ Ср мар 10, 2021 12:41:48 ] |
| Заголовок сообщения: | Re: Не корректный вывод информации на экран LCD 1602 |
Абсолютно неверное представление об АДУРИНЬЕ. Штука весьма интересная и мощная, но ессно со своей спецификой и ограничениями для простого/продвинутого пользователя. (варианты "школярства" при абсолютном копипасте не рассматривается). Разводка плат там также разная, однако более специализирована для применения последовательного обмена с внешними устройствами, имеющими некоторые "мозги". |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|




