|
Новичек. Вопрос по LCD |
|
|
|
Jun 26 2007, 12:36
|
Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343

|
Допустим на LCD 2x16 выведен текс. В верхней строке текст должен не менятся Как очистить нижнию строку LCD от старой информации для внесения новой
|
|
|
|
|
Jun 26 2007, 12:48
|
Группа: Новичок
Сообщений: 2
Регистрация: 20-03-07
Пользователь №: 26 351

|
Елементарно! Записать туда "пустую строку", а потом - то, что требуется. Либо сразу новую поверх старой.
|
|
|
|
|
Jun 26 2007, 12:53
|

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

|
Хитрый вопрос...:-) Вам необходимо установить адрес начала второй строки и загнать текст. Очищать в принципе ничего ненадо..а если надо то просто заполнить символами пробела " " :-) Да советую внимательно ознакомится с доками на LСD. Вторая строка начинается не с адреса следующего после адреса последнего символа перой строки. Вот два дока, один на русском - описание протокола.Другой описание контроллера HD44780 который в большенстве случаев, или схожий с ним, применяется в такого рода экранах. Удачи.
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Jun 26 2007, 12:59
|
Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343

|
Во первых зачем стирать если можно ее просто переписать! нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо
|
|
|
|
|
Jun 26 2007, 13:08
|

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

|
Цитата нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три Пачаму? можно выставить адрес символа и записать только один. Удобно для работы с lcd установить в нем режим автоматической сдвижки курсора на следующий символ в строке после пересылки в него символа. Но можно этот режим не включать и тупо писать символы по адресу в строке. В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Jun 26 2007, 13:10
|
Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 932

|
Цитата(new @ Jun 26 2007, 16:59)  Во первых зачем стирать если можно ее просто переписать! нужно очистить для того, чтобы когда строка забита полностью не получилось смешивания если нужно записать один или два или три ... символа, вобщем как я понял решение только одно записать туда "пустую строку". Спасибо Ну или целиком переписывать весь текст, перед этим стирая весь экран.
|
|
|
|
|
Jun 26 2007, 13:15
|
Группа: Новичок
Сообщений: 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
|
|
|
|
|
Jun 26 2007, 13:21
|

Местный
  
Группа: Свой
Сообщений: 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" чтобы затереть предыдущую инфу.. По синтаксису лучше спросить у сишников..:-/
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Jun 26 2007, 13:22
|
Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343

|
Вообщем то решение найдено забивать пробелами строку перед вводом или оставшиеся знакосмета LCD забивать пробелами, я просто думал может есть какая нибудь команда очистки фрагмента экрана. Всем спасибо.
|
|
|
|
|
Jun 26 2007, 13:28
|

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

|
Цитата просто думал может есть какая нибудь команда очистки фрагмента экрана есть токо очистка полностью всего экрана (см. док прикрепленный выше по протоколу , табл.9)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Jun 26 2007, 13:34
|
Группа: Новичок
Сообщений: 14
Регистрация: 14-02-07
Пользователь №: 25 343

|
to add персональное спасибо, про lcd_clear(); я знаю. просто мне нужно на определленое время стереть нижнюю строку, догадывался про пробелы, но думал может есть какая нибудь команда которую я не знаю.
|
|
|
|
|
Jun 26 2007, 16:00
|

Группа: Новичок
Сообщений: 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]
|
|
|
|
|
Jun 28 2007, 07:11
|

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

|
Цитата(IgorKossak @ Jun 27 2007, 23:42)  Чтобы не тратить время на затирание пробелами, можно вывести нужный стринг поверх старого сообщения и только оставшуюся часть строки добить пробелами. ?! Цитата В вашем случае можно просто писать в LCD строку с пробелами например: (пробелы обозначил подчеркиваниями для наглядности) "__Hello__World_" ;-)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|