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

 
 
> Вопрос по LCD и CodeVision
Рома_С
сообщение Feb 16 2007, 23:01
Сообщение #1





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



У меня есть два вопроса

Первый он же главный.
Подскажите пожалуйста, как с помощью CodeVision можно создать, записать в память дисплея и потом прочитать с памяти собственный символ для HD44780 совместимых ЖКИ?

Второй.
Есть ли еще команды для роботы с ЖКИ в CodeVision кроме стандартных в lcd.h, если есть, то как их можно использовать в том же CodeVision (синтаксис команды или функции)?

Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Рома_С
сообщение Mar 1 2007, 00:04
Сообщение #2





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



О спасибо всем, очень помогли ваши советы. Что самое интересно что в хелпе на сvavr как и показал vooon есть пример:

/* table for the user defined character
arrow that points to the top right corner */
flash byte char0[8]={
0b0000000,
0b0001111,
0b0000011,
0b0000101,
0b0001001,
0b0010000,
0b0100000,

0b1000000};

/* function used to define user characters */
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);
}



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

И что означают вот ети две строчки функции define_char

a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);

если можно поподробней.


А сейчас я поставил себе задачу, вывести на экран бегущую строку тобишь есть строка символов которая имеет допустим 50 символов то ее нужно вывести на дисплей имеющий 20 символов в строке.

Кстати написал я вот такой код то, что первое пришло наум и явно чтото не здравое
Вот

int i;
char s[12]="Hello world";
.......
for(i=0;i<=19;i++)
{
delay_ms(500);
lcd_gotoxy(i,0);
lcd_puts(s);
}
........

и он мне нормально сдвигал строку пока символ d не дошел до края дисплея, а потом с начала нижней строки стали отображаться исчезнувшие символы верхней строки. Почему? Я подумал что строка должна просто себе исчезать по мере продвижения.

Подскажите что я сделал не так, помогите пожалуйста ссылками или советами по поводу бегущей строки символов по строке дисплея. И как все это можна организовать на CodeVisionAVR

Вот еще, дисплей у меня 4х20

Заранее благодарен.
Go to the top of the page
 
+Quote Post
vooon
сообщение Mar 1 2007, 01:09
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Цитата(Рома_С @ Mar 1 2007, 00:04) *
И что означают вот ети две строчки функции define_char

a=(char_code<<3) | 0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);

если можно поподробней.


А сейчас я поставил себе задачу, вывести на экран бегущую строку тобишь есть строка символов которая имеет допустим 50 символов то ее нужно вывести на дисплей имеющий 20 символов в строке.

посмотрите http://electronix.ru/forum/index.php?s=&am...st&p=129947 smile.gif

a - это адрес куда будем писать, у 44780 есть две области памяти знакогенератор и данные, отображаемые на экране
адрес первой ячейки знакогенератора 0x40, а данных - 0x80
на каждый _свой_ символ нужно 8 байт (т. е. для символа 0 это 0x40 - 0x47, соответственно для 1ого 0x48 - 0x4F, и т.д.)
это делаем сдвигом номера символа на 3 влево, и побитное или с 0х40.

далее в цикле записываем 8 значений из массива переданного через указатель pc


Ах да! забыл сказать:

у 44780 данные разделены на две строки по 40 байт
у двухстрочных для удобства первая строка это первая smile.gif , а вторая - вторая
Но у четырехстрочных первая строка в озу отображается на 1ой и 3ей(!) строках
а вторая строка в озу - на 2ой и 4ой

надеюсь понятно написал rolleyes.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Рома_С   Вопрос по LCD и CodeVision   Feb 16 2007, 23:01
- - Яrik   Цитата(Рома_С @ Feb 16 2007, 22:01) У мен...   Feb 16 2007, 23:36
- - Artur Nikitin   Цитата(Рома_С @ Feb 16 2007, 23:01) ...ка...   Feb 28 2007, 12:42
- - vooon   Цитата(Рома_С @ Feb 16 2007, 23:01) У мен...   Feb 28 2007, 22:30
|- - Рома_С   Цитата(vooon @ Mar 1 2007, 00:09) a - это...   Mar 1 2007, 22:25
|- - Сергей Борщ   Цитата(Рома_С @ Mar 1 2007, 21:25) Почему...   Mar 1 2007, 23:24
|- - vooon   Цитата(Рома_С @ Mar 1 2007, 22:25) А где ...   Mar 2 2007, 00:27
|- - Сергей Борщ   Цитата(vooon @ Mar 1 2007, 23:27) вот гля...   Mar 2 2007, 14:40
|- - vooon   Цитата(Сергей Борщ @ Mar 2 2007, 14:40) ....   Mar 2 2007, 17:12
|- - Wano   Люди те кто будет пробовать использовать стандар...   Mar 5 2007, 21:27
|- - vooon   Цитата(Wano @ Mar 5 2007, 21:27) Во вторы...   Mar 6 2007, 01:04
|- - Petka   Цитата(Wano @ Mar 5 2007, 21:27) Люди т...   Mar 6 2007, 01:10
|- - Wano   Кароче товарищи жаль что нельзя с вами поспорить.Х...   Mar 6 2007, 21:34
- - megachip   Использую 1.24.6, никаких проблем с библиотекой LC...   Mar 6 2007, 21:48
- - Wano   Киньте на ksotпсюкlist.ru свою версию,я посравнива...   Mar 6 2007, 21:57
- - Рома_С   Ну, наконец то разобрался я с вот этой функцией. ...   Mar 6 2007, 23:32
- - vooon   Цитатасколько можно собственных символов записать ...   Mar 7 2007, 01:39


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:43
Рейтинг@Mail.ru


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