Полная версия этой страницы:
Новичек. Вопрос по LCD
Допустим на LCD 2x16 выведен текс. В верхней строке текст должен не менятся
Как очистить нижнию строку LCD от старой информации для внесения новой
Во первых зачем стирать если можно ее просто переписать!
Фактической команды очистки фрагмента экрана нет. Только запись в соотсетствующие знакоместа кода 0x20.
Елементарно! Записать туда "пустую строку", а потом - то, что требуется. Либо сразу новую поверх старой.
Хитрый вопрос...:-) Вам необходимо установить адрес начала второй строки и загнать текст. Очищать в принципе ничего ненадо..а если надо то просто заполнить символами пробела " " :-)
Да советую внимательно ознакомится с доками на LСD.
Вторая строка начинается не с адреса следующего после адреса последнего символа перой строки.
Вот два дока, один на русском - описание протокола.Другой описание контроллера HD44780 который в большенстве случаев, или схожий с ним, применяется в такого рода экранах. Удачи.
Во первых зачем стирать если можно ее просто переписать!
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо
Цитата
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три
Пачаму? можно выставить адрес символа и записать только один.
Удобно для работы с lcd установить в нем режим автоматической сдвижки курсора на следующий символ в строке после пересылки в него символа. Но можно этот режим не включать и тупо писать символы по адресу в строке.
В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)
Цитата(new @ Jun 26 2007, 16:59)

Во первых зачем стирать если можно ее просто переписать!
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо
Ну или целиком переписывать весь текст, перед этим стирая весь экран.
to add
lcd_gotoxy(2,1);
lcd_putsf("5 all cicle");
вот результат 5 all cicle далее
lcd_gotoxy(2,1);
lcd_putsf("3 cicle");
вот результат 3 cicle cle
Цитата
lcd_gotoxy(2,1); lcd_putsf("5 all cicle");вот результат 5 all cicle далее lcd_gotoxy(2,1); lcd_putsf("3 cicle");вот результат 3 cicle
:-) вообщето я заядлый асемблерщик.. И в Си пока не силен..Но думаю Вам достаточно добавить пробелов в пересылаемой строке после "3 cicle" чтобы затереть предыдущую инфу.. По синтаксису лучше спросить у сишников..:-/
Вообщем то решение найдено забивать пробелами строку перед вводом или оставшиеся знакосмета LCD забивать пробелами, я просто думал может есть какая нибудь команда очистки фрагмента экрана.
Всем спасибо.
Цитата
просто думал может есть какая нибудь команда очистки фрагмента экрана
есть токо очистка полностью всего экрана (см. док прикрепленный выше по протоколу , табл.9)
to add
персональное спасибо, про lcd_clear(); я знаю.
просто мне нужно на определленое время стереть нижнюю строку, догадывался про пробелы,
но думал может есть какая нибудь команда которую я не знаю.
Adams_Taha
Jun 26 2007, 16:00
Цитата(new @ Jun 26 2007, 17:34)

но думал может есть какая нибудь команда которую я не знаю.
Все зависит от того какой тип LCD (на базе какого контроллера) используется в железе. В datasheet описаны все возможные для контроллера комманды. В данном случае чтоб не загружать контроллер очисткой и записью, советую просто переписывать строку с пробелами там, где должно быть чисто до и после текста, дводя строку до 16 знаков, а после устанавливать курсор если он нужен в положении видимости.
IgorKossak
Jun 27 2007, 19:42
Чтобы не тратить время на затирание пробелами, можно вывести нужный стринг поверх старого сообщения и только оставшуюся часть строки добить пробелами.
Цитата(IgorKossak @ Jun 27 2007, 23:42)

Чтобы не тратить время на затирание пробелами, можно вывести нужный стринг поверх старого сообщения и только оставшуюся часть строки добить пробелами.
?!
Цитата
В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)
day177
Jun 28 2007, 07:35
а у меня такой вопрос. Есть переменная Х, ее значение меняется. Как выводить ее значение на ЖКИ?
ну поищи функцию itoa для перевода числа в строку,дальше выводи на экран. Имеются и такие функции как sprintf. Они есть в CodeVision. Ещё как выход существуют исходники простых функций работы со строками в исходниках вижуала. Функции сильно заворочены,но работают как часы. Функцию itoa брал оттуда - копировать - вставить.Кстати брал потому,что родные функция не конвертит в хекс и бинарник.
Кстати такие функции как clearscreen плохо влияют на восприятие. Даже небольшое маргание начинает раздражать.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.