roboforum.ru

Технический форум по робототехнике.

MT16S2d ремонт и отображение русских букв

avr123.nm.ru » 29 апр 2007, 15:11

Я слышал что можно купить ЛСД с русским шрифтом либо нужно в его память загрузить русские шрифты.

avr123.nm.ru » 29 апр 2007, 15:13


avr123.nm.ru » 29 апр 2007, 15:18

В интенете еще есть поисковики   :lol:

Myp » 29 апр 2007, 15:36

короче так
Код: Выделить всёРазвернуть
lcd_write_byte(0x0,0AE);

вот это выводит букву Ы =)
но выводить текст посимвольно...это галяк
Последний раз редактировалось Myp 29 апр 2007, 15:46, всего редактировалось 2 раз(а).

avr123.nm.ru » 29 апр 2007, 15:41

Вот по линкам и есть удобства для выведения русских символов.

Myp » 29 апр 2007, 15:54


эммм
на питоне...
а как это обычному человеку запускать?
а всё, дочитал =) сори

чёто както...

уже ближе
идея вроде понятна но код приведн бредовый
Последний раз редактировалось Myp 29 апр 2007, 16:07, всего редактировалось 1 раз.

Myp » 29 апр 2007, 16:03

Код: Выделить всёРазвернуть
flash char Decode2Rus[255-192+1]= { 0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,
                                   0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,
                                   0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,
                                   0xAC,0xE2,0xAD,0xAE,0xAD,0xAF,0xB0,0xB1,
                                   0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,
                                   0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE,
                                   0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,
                                   0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7 };  


#define _ALTERNATE_PUTCHAR_
void lcdprint(unsigned char c)
{
 if(c>=192) lcd_putchar(Decode2Rus[c-192]); else lcd_putchar(c);
}


в программе делаем так
Код: Выделить всёРазвернуть
while (1)
     {
lcdprint("Привет");
     };


и получаем ошибку
типа унсигнед чар несовместим с унсигнед чар
как это так????
Вложения
ACDSee6 BMP Image.jpg
ACDSee6 BMP Image.jpg (4.66 КиБ) Просмотров: 2072

avr123.nm.ru » 29 апр 2007, 16:24

Ну ты пишешь что функция будет символ принимать а кидаешб ей строку - "Привет"

Myp » 29 апр 2007, 16:25

угу
понял

но там по ссылке именно так и делали ....



а как же тогда писать строку? ибо проще посимвольно по табличке писать чем вот так вот..

Master » 29 апр 2007, 16:36

Если контроллер HD44780, то русские буквы у него есть только они имеют немного другую кодировку. Т. е. (чисто для примера) если буква "П" имеет код скажем 24, то внутри МК она имеет код 32. Я решал эту проблему написанием функции - типа русификатор. Она сканирует строку и если находит там русские символы, то соответствующим образом меняет код выводимого символа. Только я это делал не для Меги, а на Делфи для упрапления LCD через LPT.

avr123.nm.ru » 29 апр 2007, 17:08

Myp писал(а):а как же тогда писать строку?


Веселый вы барин ...   :lol:

Как там сказано  -  avr123.nm.ru/z5.htm -  так и писать.

Myp » 29 апр 2007, 17:23

avr123.nm.ru писал(а):
Myp писал(а):а как же тогда писать строку?


Веселый вы барин ...   :lol:

Как там сказано  -  avr123.nm.ru/z5.htm -  так и писать.

ну строку то писать я умею...

имелось в виду строку русскую
Код: Выделить всёРазвернуть

lcdprint('П');
lcdprint('р');
lcdprint('и');
lcdprint('в');
lcdprint('е');  
lcdprint('т');

это както идиотски выглядит...

Сергей » 29 апр 2007, 17:26

А использовать функции тебе религия не позволяет?

avr123.nm.ru » 29 апр 2007, 17:37

Myp писал(а):ну строку то писать я умею...


Дак и сформируй ее из нужных чисел и выводи.

Myp » 29 апр 2007, 17:52

эх
блин
ну что такое
всё сам, всё сам

а  где же всё готовенькое? :(


в идеале надо бы хедер файл сделать
и там написать процедуру перекодировки
типа берём строку, парсим её, русские символы заменяем на нужные и возвращаем готовую для вывода строку
и эту строку выводим в дисплей



дисплей кстати глючный вобще какойто
16 символ в первой строке просто так нельзя записать, надо записывать строку из 15, ставить курсор на 16 позицию и записывать вручную символ
иначе если записать строку из 16 символов то последнего символа будет нехватать =/
однако если писать второй раз поверх то все16 символов отображаются


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


Rambler\'s Top100 Mail.ru counter