LCD1602 остаются знаки с прошлой строки
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Дисплей LCD1602. На нижней строке в определенных режимах отображается время, температура, настройка дней недели. Заметил особенность. Если надпись в предыдущем режиме занимает в строке 16-ть символов, а в последующем режиме надпись в этой же строке меньше 16-ти символов, то остаются непогашенными оставшиеся не занятыми символы предыдущего режима работы. У меня одного так?
LCD1602 остаются знаки с прошлой строки
У меня тоже так. Я при переключении режимов использую на один цикл плату из очисткой дисплея. На входе D значение заполнено пробелами.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Я в принципе тоже так сделал, только очистку экрана не делал. Просто пробелы добавил там где надо.kbplug писал(а): 09 янв 2021, 10:45 У меня тоже так. Я при переключении режимов использую на один цикл плату из очисткой дисплея. На входе D значение заполнено пробелами.
Знімок екрану_2021-01-09_09-41-51.png
Но может существует более изящный способ побороть лишние символы. И хотелось бы знать откуда ноги растут у этой проблемы. Может это вообще нормальная работа для LCD1602?
- Phazz
- Полковник
- Сообщения: 3128
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
LCD1602 остаются знаки с прошлой строки
можно делать длину строки всегда 16 символов. Недостающее добивать пробелами.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Я так и сделал.Phazz писал(а): 09 янв 2021, 12:29 можно делать длину строки всегда 16 символов. Недостающее добивать пробелами.
Вопрос в том, что это косяк дисплея, библиотеки или еще чего-нибудь, или это штатная работа дисплея и надо, при смене текста, специально принимать меры для удаления лишних символов (например пробелами)?
- Dryundel
- Полковник
- Сообщения: 2433
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
LCD1602 остаются знаки с прошлой строки
Какая версия FLProg?Aleksandr2 писал(а): 09 янв 2021, 09:43 Дисплей LCD1602. На нижней строке в определенных режимах отображается время, температура, настройка дней недели. Заметил особенность. Если надпись в предыдущем режиме занимает в строке 16-ть символов, а в последующем режиме надпись в этой же строке меньше 16-ти символов, то остаются непогашенными оставшиеся не занятыми символы предыдущего режима работы.
Проект выложите.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Версия 7.3.0Dryundel писал(а): 09 янв 2021, 13:56Какая версия FLProg?Aleksandr2 писал(а): 09 янв 2021, 09:43 Дисплей LCD1602. На нижней строке в определенных режимах отображается время, температура, настройка дней недели. Заметил особенность. Если надпись в предыдущем режиме занимает в строке 16-ть символов, а в последующем режиме надпись в этой же строке меньше 16-ти символов, то остаются непогашенными оставшиеся не занятыми символы предыдущего режима работы.
Проект выложите.
Отправлено спустя 46 секунд:
По условию это как?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2433
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
LCD1602 остаются знаки с прошлой строки
Не стоит блоки дисплея размещать в платах работающих по условию. Это лишает их возможности правильно отрабатывать стирание.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Можете объяснить, что такое платы работающие по условию?Dryundel писал(а): 09 янв 2021, 17:13Не стоит блоки дисплея размещать в платах работающих по условию. Это лишает их возможности правильно отрабатывать стирание.
- Dryundel
- Полковник
- Сообщения: 2433
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
LCD1602 остаются знаки с прошлой строки
Каждая плата может работать или не работать по определенному условию. (Двойной клик по шапке платы)
Отправлено спустя 2 минуты 55 секунд:
[ref]Aleksandr2[/ref], в вашем проекте таких плат нет. Проблема со стиранием вероятно связана с использованием пользовательского блока дисплея.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Спасибо Андрей!Dryundel писал(а): 09 янв 2021, 17:47Каждая плата может работать или не работать по определенному условию. (Двойной клик по шапке платы)
Отправлено спустя 2 минуты 55 секунд:
[ref]Aleksandr2[/ref], в вашем проекте таких плат нет. Проблема со стиранием вероятно связана с использованием пользовательского блока дисплея.
Наверное Вы правы, тем более, что такое поведение дисплея не у меня одного.
LCD1602 остаются знаки с прошлой строки
[ref]Aleksandr2[/ref],
Для Вашей ситуации решение находится здесь.
Очистка дисплеев- увеличение в два раза времени обновления данных и без того медленного процесса.
При применении штатного блока LCD HD44780 происходит [spoiler title=очистка дисплея вначале каждого цикла] [/spoiler] независимо от того находится блок в плате выполняющейся по условию или нет. Дисплей конечно очищается, а переменная с данными дисплея нет, потому при получении разрешения/в порядке очереди старые данные поступают в очищенный дисплей, обновляются и опять идут в дисплей, но уже без очистки (флаг сброшен _isNeedClearDisp1= 0). Можно делать/делают: 1) по детектору изменения данных делать очистку, после слать данные (недостаток выше описан, данные прыгают по дисплею); 2) проверять длинну данных и если меньше предыдущей делать очистку, потом слать данные (недостатки те же) ; 3) формировать данные одной фиксированной длинны/колличества символов/знакомест(не всегда возможно); 4) формировать длинну строк по числу всех знакомест дисплея (блоки по ссылке), для двух последних очистка вообще лишняя процедура, так как новые данные заменяют собой старые полностью. Ваш проект поправить не могу, моя версия 6.3.1 его не открывает.
Удачи!
У Вас в профиле заблокированы личные сообщения.
Для Вашей ситуации решение находится здесь.
Очистка дисплеев- увеличение в два раза времени обновления данных и без того медленного процесса.
При применении штатного блока LCD HD44780 происходит [spoiler title=очистка дисплея вначале каждого цикла] [/spoiler] независимо от того находится блок в плате выполняющейся по условию или нет. Дисплей конечно очищается, а переменная с данными дисплея нет, потому при получении разрешения/в порядке очереди старые данные поступают в очищенный дисплей, обновляются и опять идут в дисплей, но уже без очистки (флаг сброшен _isNeedClearDisp1= 0). Можно делать/делают: 1) по детектору изменения данных делать очистку, после слать данные (недостаток выше описан, данные прыгают по дисплею); 2) проверять длинну данных и если меньше предыдущей делать очистку, потом слать данные (недостатки те же) ; 3) формировать данные одной фиксированной длинны/колличества символов/знакомест(не всегда возможно); 4) формировать длинну строк по числу всех знакомест дисплея (блоки по ссылке), для двух последних очистка вообще лишняя процедура, так как новые данные заменяют собой старые полностью. Ваш проект поправить не могу, моя версия 6.3.1 его не открывает.
Удачи!
У Вас в профиле заблокированы личные сообщения.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Спасибо Василий!Labu559 писал(а): 09 янв 2021, 19:04 [ref]Aleksandr2[/ref],
Для Вашей ситуации решение находится здесь.
Очистка дисплеев- увеличение в два раза времени обновления данных и без того медленного процесса.
При применении штатного блока LCD HD44780 происходит [spoiler title=очистка дисплея вначале каждого цикла]ClearDisplay.png[/spoiler] независимо от того находится блок в плате выполняющейся по условию или нет. Дисплей конечно очищается, а переменная с данными дисплея нет, потому при получении разрешения/в порядке очереди старые данные поступают в очищенный дисплей, обновляются и опять идут в дисплей, но уже без очистки (флаг сброшен _isNeedClearDisp1= 0). Можно делать/делают: 1) по детектору изменения данных делать очистку, после слать данные (недостаток выше описан, данные прыгают по дисплею); 2) проверять длинну данных и если меньше предыдущей делать очистку, потом слать данные (недостатки те же) ; 3) формировать данные одной фиксированной длинны/колличества символов/знакомест(не всегда возможно); 4) формировать длинну строк по числу всех знакомест дисплея (блоки по ссылке), для двух последних очистка вообще лишняя процедура, так как новые данные заменяют собой старые полностью. Ваш проект поправить не могу, моя версия 6.3.1 его не открывает.
Удачи!
У Вас в профиле заблокированы личные сообщения.
- Dryundel
- Полковник
- Сообщения: 2433
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 3 раза
- Поблагодарили: 30 раз
LCD1602 остаются знаки с прошлой строки
[ref]Aleksandr2[/ref], скорее всего Вам это решение не подойдет. Вы используете русифицирующий блок, а предлагаемый [ref]Labu559[/ref] блок, не сможет работать с кириллическими символами, т.к. основан на функции length(), которая не умеет этого делать.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
В этот раз я заполнил лишние позиции в строках пробелами. Конечно не слишком изящно в изготовлении устройства, но пользователи (жена и сын) ничего не заметят. Сейчас все работает правильно и никаких лишних символов нет.Dryundel писал(а): 10 янв 2021, 09:44[ref]Aleksandr2[/ref], скорее всего Вам это решение не подойдет. Вы используете русифицирующий блок, а предлагаемый [ref]Labu559[/ref] блок, не сможет работать с кириллическими символами, т.к. основан на функции length(), которая не умеет этого делать.
Если найдется более красивое решение, то буду рад.
Спасибо!
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 11 май 2020, 02:12
- Откуда: Владимир
- Имя: Александр
LCD1602 остаются знаки с прошлой строки
Андрей!
Блок скачал. Как-нибудь обязательно попробую.
Только этот проект уже оставлю как есть. Устройство собрано и обкатано. Меня устраивает.
А Вам спасибо!
Мне до Вас далеко!

LCD1602 остаются знаки с прошлой строки
Не знаю на сколько "красивое", но для HD44780 c загруженными пользовательскими знаками (кириллическими символами) в CGRAM необходимо просто отделить/изъять комманду 0х80 доступа к пользовательской памяти от адреса регистра, которых 8-мь (в таком случае функция length() работает как положено) и ес-но такая версия блока тоже имеется на стадии "зависшего" тестирования, хотя мной и проверенная давно, но уже забытая. Если укажете чей/откуда блок с руссификацией используете (не для 7-х версий),- смогу проверить на совместимость. Тут вероятно о универсальности говорить не приходится, у каждого автора свои методы/биб-ки. Если разрешите личные сообщения в своём профиле- предоставлю Вам тест и мою благодарность. В паблик тесты не публикую- не хочу загаживать форум непроверенными блоками.
Если Ваша цель уже достигнута- игнорируйте это сообщение.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей