Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 01.10.2010, 20:36  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Как вывести русские символы на LCD из CAVR

Сообщение от picavr Посмотреть сообщение
перекодировка WIN-LCD для PIC
Ну а для AVR и других процов на Си, я приводил в посте 10 данной темы.
Реклама:
SasaVitebsk вне форума  
Непрочитано 27.05.2012, 23:52  
kosmos440o
Заблокирован
 
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
kosmos440o на пути к лучшему
По умолчанию Re: Как вывести русские символы на LCD из CAVR

Я немного переделал "для чайников" функцию уважаемого nagano из 38 поста данной темы:

#include ‹stdio.h›
#include ‹string.h›
// Alphanumeric LCD Module functions
#include ‹alcd.h›
char lcd_string [40];
const unsigned char ruscoder[64] = { //массив для перекодировки из ASCII в KOI-8R
0x41, 0xA0, 0x42, 0xA1, //0xC0...0xC3 ‹=› А Б В Г
0xE0, 0x45, 0xA3, 0x33, //0xC4...0xC7 ‹=› Д Е Ж З
0xA5, 0xA6, 0x4B, 0xA7, //0xC8...0xCB ‹=› И Й К Л
0x4D, 0x48, 0x4F, 0xA8, //0xCC...0xCF ‹=› М Н О П

0x50, 0x43, 0x54, 0xA9, //0xD0...0xD4 ‹=› Р С Т У
0xAA, 0x58, 0xE1, 0xAB, //0xD5...0xD7 ‹=› Ф Х Ц Ч
0xAC, 0xE2, 0xAC, 0xAE, //0xD8...0xDB ‹=› Ш Щ Ъ Ы
0x62, 0xAF, 0xB0, 0xB1, //0xDC...0xDF ‹=› Ь Э Ю Я

0x61, 0xB2, 0xB3, 0xB4, //0xE0...0xE4 ‹=› а б в г
0xE3, 0x65, 0xB6, 0xB7, //0xE5...0xE7 ‹=› д е ж з
0xB8, 0xA6, 0xBA, 0xBB, //0xE8...0xEB ‹=› и й к л
0xBC, 0xBD, 0x6F, 0xBE, //0xEC...0xEF ‹=› м н о п

0x70, 0x63, 0xBF, 0x79, //0xF0...0xE4 ‹=› р с т у
0xE4, 0xD5, 0xE5, 0xC0, //0xF5...0xE7 ‹=› ф х ц ч
0xC1, 0xE6, 0xC2, 0xC3, //0xF8...0xEB ‹=› ш щ ъ ы
0XC4, 0xC5, 0xC6, 0xC7 //0xFC...0xEF ‹=› ь э ю я
};

void lcd_ruscoder_puts ( unsigned char *message) //функция перекодировки ASCII в KOI-8R
{
unsigned char i, j; //для цикла и длины

j = strlen(message); //определяем длину строчки

for (i = 0; i ‹ (j + 1); i++) //массив ASCII в массив KOI-8R, j + 1 - чтобы вывести конец строки

{
if (message [i] ›= 192) //если кирилица
{
message [i] = ruscoder [(message [i] - 192)]; //используем массив перекодировки
};
};

lcd_puts (message); //выыодим на LCD
}

void lcd_putsf_ru(char flash *str)
{
sprintf (lcd_string, str);
lcd_ruscoder_puts (lcd_string);
}

Теперь для посылки строки из флэш-памяти русскими буквами нужно добавить к стандартной функции CVAVR 2 символы "_ru".

Пример
lcd_putsf_ru("РУССКИЕ БУКВЫ");

Компилятор немного ругается на указатели типа unsigned char, если снять галочку "char is unsigned" в конфигурации проекта. Но работает. Помогите, люди добрые, решить проблему с руганью, и пользуйтесь на здоровье.

Последний раз редактировалось kosmos440o; 08.06.2012 в 19:55.
kosmos440o вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeVisionAVR, LCD + русские буквы jogick Микроконтроллеры, АЦП, память и т.д 8 05.07.2009 12:47
как вывести буквы на дисплей andron-kip Микроконтроллеры, АЦП, память и т.д 4 27.10.2008 00:28
подскажите как вывести значение ацп на индикатор ctefan Микроконтроллеры, АЦП, память и т.д 13 06.04.2007 10:59
как вывести на LCD данные из буфера? goooblin Микроконтроллеры, АЦП, память и т.д 11 02.04.2007 10:01
Как вывести из ступора DS1307? Muzicant Микроконтроллеры, АЦП, память и т.д 4 09.10.2006 19:28


Часовой пояс GMT +4, время: 19:16.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot