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

 
 
> hd44780
Станис
сообщение Aug 13 2010, 04:43
Сообщение #1


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

Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565



Подскжите как на Си (CV) вывести свой созданый символ, на дисплее с контроллеров hd44780...
Буду очень благодарен за примерчик.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Aug 13 2010, 05:09
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Держите:
CODE

// свои символы (8 штук):
const unsigned char lcdfont[] = {
//Charchter 0
0x0C, //00001100
0x12, //00010010
0x0C, //00001100
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
//Charchter 1
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x1f, //00011111
0x1f, //00011111
0x00, //00000000
//Charchter 2
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x1f, //00011111
0x1f, //00011111
0x00, //00000000
0x00, //00000000
//Charchter 3
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x1f, //00011111
0x1f, //00011111
0x00, //00000000
0x00, //00000000
0x00, //00000000
//Charchter 4
0x00, //00000000
0x00, //00000000
0x1f, //00011111
0x1f, //00011111
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
//Charchter 5
0x00, //00000000
0x1f, //00011111
0x1f, //00011111
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
//Charchter 6
0x1f, //00011111
0x1f, //00011111
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
0x00, //00000000
//Charchter 7
0x00, //00000000
0x1f, //00000010
0x1f, //00000101
0x1f, //00000010
0x1f, //00000100
0x1f, //00001110
0x1f, //00010101
0x1f, //00000100
};

// процедура загрузки своих символов (вызывается один раз, при инициализации)
#define LCDCGADRSET (0x40)

void lcd_load_font(void)
{
int i;
lcd_command(LCDCGADRSET);
for (i = 0; i<sizeof(lcdfont); i++)
lcd_putbyte(lcdfont[i]);
}

// выводятся символы так:
lcd_putbyte(i);, где i = 0..7.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 13 2010, 10:41
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(AHTOXA @ Aug 13 2010, 08:09) *
Держите:
Я использую старший (неотображаемый) бит как признак конца знакогененратора. То есть если нужна пустая строчка в символе, то делаю ее код 0x80. Заканчиваю знакогенератор нулевым байтом. И дальше засылаю весь знакогенератор функцией отображения строки, предварив ее командой SET_CG_ADDR.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Станис
сообщение Aug 18 2010, 04:42
Сообщение #4


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

Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565



lcd_command(LCDCGADRSET);
lcd_putbyte(lcdfont[i]);

CV этого не знает.... что делать?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 18 2010, 05:19
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Заменить чем-то, что CV знает. Первое - отправка байта-команды, второе - байта-данных.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


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


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