Страница 1 из 1

PowerTip PC1602-F (конт. ST7066U) Как вывести русский текст?

Добавлено: Вт фев 08, 2011 17:09:21
poligon
Здравствуйте. Имеется ЖКИ PowerTip PC1602-F Сайт производителя Сам дисплей
Производитель пишет что управляет дисплеем контроллер ST7066U. Хотя в интернете люди говорят что там KS0066U, уж не знаю почему.

Скачал библиотеку под CodeVisionAVR для KS0066U. Настроил, скомпилировал, всё работает. Но не пойму как русский текст вывести???

Нашел:

Код: Выделить всё

#pragma rl+
  lcd_putsf("Индикатор 16х02");
#pragma rl-
Но в CVAVR 2.03.4 нет pragma rl+

Сами строки выводятся так (английские):

Код: Выделить всё

//функция вывода строки из флэш памяти
void LCD_SendStringFlash(char __flash *str)
{
  unsigned char data;			
  while (*str)
  {
    data = *str++;
    LCD_WriteData(data);
  }
}

//функция вывода строки из ОЗУ
void LCD_SendString(char *str)
{
  unsigned char data;
  while (*str)
  {
    data = *str++;
    LCD_WriteData(data);
  }
}
Библиотеку прилагаю и прошу помощи. Спасибо.

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 17:18:59
Vov123
Не поддерживается в CVAVR 2.03.4 pragma rl+
Напиши по русски свою фразу,конвертируй её,скопируй тот бред,который "for Bascom",вставь в программу для CVAVR.На дисплее будет кириллица.

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 17:35:48
poligon
Написал: "Температура". Получил: "Teјѕepaїypa"

Код: Выделить всё

LCD_SendStringFlash("Teјѕepaїypa");
Крякозяблы на дисплее. Русского нет

Я так понял прога просто заменяет буквы в соответствии с ANSI таблицей. Это не то.

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 18:57:51
Danko
poligon, а Вы уверены, что индикатор русифицированный?

Посмотрите здесь библиотеку для LCD.

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 19:17:15
poligon
Danko писал(а):poligon, а Вы уверены, что индикатор русифицированный?
Нет не уверен. Описание на сайте скудное. Я если честно не понимаю как вообще русский вывести? Даже если взять другой русифицированный дисплей.

А с этим наверное только по точкам буквы рисовать, да? Никто для этого контроллера таким не занимался?

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 19:38:16
Danko

Код: Выделить всё

const char message[] = {159,160,161,162,163,164,165,166,167,168} // Б Г ё Ж З И Й Л П У
lcd_gotoxy(0,0); //первая строка первая позиция
lcd_putsf(message); //вывод на экран
у меня Б Г ё Ж З И Й Л П У

А у Вас что на экране ?

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 19:40:02
Engineer_Keen
poligon писал(а): Нет не уверен. Описание на сайте скудное. Я если честно не понимаю как вообще русский вывести? Даже если взять другой русифицированный дисплей.
А с этим наверное только по точкам буквы рисовать, да? Никто для этого контроллера таким не занимался?
На знакосинтезирующих дисплеях по точкам рисовать не получится. Хотя обычно можно несколько символов закодировать. Попробуйте поочередно вывести на экран символы с кодами 128-255, будут ли среди них русские буквы? Если нет, значит дисплей не руссифицированный.

Опередили :)

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 19:50:48
Danko
Там прикольная кодовая таблица. Из локализации выброшены русские буквы с одинаковым начертанием с латиницей т.а. А, Р, О, и т.д.

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Вт фев 08, 2011 21:13:53
poligon
Danko писал(а):

Код: Выделить всё

const char message[] = {159,160,161,162,163,164,165,166,167,168} // Б Г ё Ж З И Й Л П У
lcd_gotoxy(0,0); //первая строка первая позиция
lcd_putsf(message); //вывод на экран
у меня Б Г ё Ж З И Й Л П У
А у Вас что на экране ?
Белиберда выводится.

Перебрал в цикле 0-255:

Код: Выделить всё

char i;
for (i=0;i<=255;i++) {
LCD_Goto(0,0);
LCD_WriteData(i);
... // отображение на второй строке int номера
}
0-32 пусто
33-127 английский (большие/малые буквы) и цифры 0-9
128-160 пусто
161-255 крякозяблы

Причем интересно что 253 это символ: ÷

А нарисовать русский точно никак??? 2 индикатора нахаляву достались (из буржуйской техники, поэтому видно и без русского...)

Re: PowerTip PC1602-F (конт. ST7066U) Как вывести русский те

Добавлено: Чт янв 19, 2012 18:25:10
John-RADIST
Всем доброго времени суток!!! Подскажите сталкнулся с аналогичной проблемой вывода кирилицы на WH1602. Посмотрел пару форумов, там есть файл библиотеки lcd.lib. Я так понимаю его необходимо скопировать в папку lib, находящеюся в директории где установлен компилятор. Если не так то подскажите пожалуйста!!!
Заранее спасибо!!!