реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Новичек. Вопрос по LCD
new
сообщение Jun 26 2007, 12:36
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343



Допустим на LCD 2x16 выведен текс. В верхней строке текст должен не менятся
Как очистить нижнию строку LCD от старой информации для внесения новой
Go to the top of the page
 
+Quote Post
IEC
сообщение Jun 26 2007, 12:47
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Во первых зачем стирать если можно ее просто переписать!
Фактической команды очистки фрагмента экрана нет. Только запись в соотсетствующие знакоместа кода 0x20.
Go to the top of the page
 
+Quote Post
svar
сообщение Jun 26 2007, 12:48
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 20-03-07
Пользователь №: 26 351



Елементарно! Записать туда "пустую строку", а потом - то, что требуется. Либо сразу новую поверх старой.
Go to the top of the page
 
+Quote Post
add
сообщение Jun 26 2007, 12:53
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Хитрый вопрос...:-) Вам необходимо установить адрес начала второй строки и загнать текст. Очищать в принципе ничего ненадо..а если надо то просто заполнить символами пробела " " :-)
Да советую внимательно ознакомится с доками на LСD.
Вторая строка начинается не с адреса следующего после адреса последнего символа перой строки.
Вот два дока, один на русском - описание протокола.Другой описание контроллера HD44780 который в большенстве случаев, или схожий с ним, применяется в такого рода экранах. Удачи.
Прикрепленные файлы
Прикрепленный файл  hd44780u.pdf ( 316.48 килобайт ) Кол-во скачиваний: 92
Прикрепленный файл  protocol_hd44780_rus_.pdf ( 393.48 килобайт ) Кол-во скачиваний: 125
 


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
new
сообщение Jun 26 2007, 12:59
Сообщение #5





Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343



Во первых зачем стирать если можно ее просто переписать!
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо
Go to the top of the page
 
+Quote Post
add
сообщение Jun 26 2007, 13:08
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три

Пачаму? можно выставить адрес символа и записать только один.
Удобно для работы с lcd установить в нем режим автоматической сдвижки курсора на следующий символ в строке после пересылки в него символа. Но можно этот режим не включать и тупо писать символы по адресу в строке.
В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
ESL
сообщение Jun 26 2007, 13:10
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 932



Цитата(new @ Jun 26 2007, 16:59) *
Во первых зачем стирать если можно ее просто переписать!
нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо

Ну или целиком переписывать весь текст, перед этим стирая весь экран.
Go to the top of the page
 
+Quote Post
new
сообщение Jun 26 2007, 13:15
Сообщение #8





Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343



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
Go to the top of the page
 
+Quote Post
add
сообщение Jun 26 2007, 13:21
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
lcd_gotoxy(2,1); lcd_putsf("5 all cicle");вот результат 5 all cicle далее lcd_gotoxy(2,1); lcd_putsf("3 cicle");вот результат 3 cicle

:-) вообщето я заядлый асемблерщик.. И в Си пока не силен..Но думаю Вам достаточно добавить пробелов в пересылаемой строке после "3 cicle" чтобы затереть предыдущую инфу.. По синтаксису лучше спросить у сишников..:-/


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
new
сообщение Jun 26 2007, 13:22
Сообщение #10





Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343



Вообщем то решение найдено забивать пробелами строку перед вводом или оставшиеся знакосмета LCD забивать пробелами, я просто думал может есть какая нибудь команда очистки фрагмента экрана.
Всем спасибо.
Go to the top of the page
 
+Quote Post
add
сообщение Jun 26 2007, 13:28
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
просто думал может есть какая нибудь команда очистки фрагмента экрана

есть токо очистка полностью всего экрана (см. док прикрепленный выше по протоколу , табл.9)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
new
сообщение Jun 26 2007, 13:34
Сообщение #12





Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343



to add
персональное спасибо, про lcd_clear(); я знаю.
просто мне нужно на определленое время стереть нижнюю строку, догадывался про пробелы,
но думал может есть какая нибудь команда которую я не знаю.
Go to the top of the page
 
+Quote Post
Adams_Taha
сообщение Jun 26 2007, 16:00
Сообщение #13





Группа: Новичок
Сообщений: 8
Регистрация: 19-05-07
Пользователь №: 27 825



Цитата(new @ Jun 26 2007, 17:34) *
но думал может есть какая нибудь команда которую я не знаю.


Все зависит от того какой тип LCD (на базе какого контроллера) используется в железе. В datasheet описаны все возможные для контроллера комманды. В данном случае чтоб не загружать контроллер очисткой и записью, советую просто переписывать строку с пробелами там, где должно быть чисто до и после текста, дводя строку до 16 знаков, а после устанавливать курсор если он нужен в положении видимости.

Сообщение отредактировал Adams_Taha - Jun 26 2007, 16:01


--------------------
[font=Trebuchet Ms][size=5][i][color=#3366FF]
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 27 2007, 19:42
Сообщение #14


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Чтобы не тратить время на затирание пробелами, можно вывести нужный стринг поверх старого сообщения и только оставшуюся часть строки добить пробелами.
Go to the top of the page
 
+Quote Post
add
сообщение Jun 28 2007, 07:11
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



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

?! wacko.gif
Цитата
В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 03:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.0145 секунд с 7
ELECTRONIX ©2004-2016