[an error occurred while processing this directive]
Ответ: уже обсуждалось несколько страниц назад, Еще раз...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено VAI 04 января 2003 г. 23:16
В ответ на: Странная кодировочная таблица у PC1602!? отправлено albor 04 января 2003 г. 20:08

FILE: C:\!\1.c

char pere_cod( char c )
{
static const char perecod[] = // перекодировка русских букв из таблици win1251 в таблицу, применяемую в ЖКИ
// А Б В Г Д Е Ж З И Й К Л М Н О П
{ 'A' , 0xa0, 'B' , 0xa1, 0xe0, 'E' , 0xa3, 0xa4, 0xa5, 0xa6, 'K' , 0xa7, 'M' , 'H' , 'O' , 0xa8, // 0xc0..0xcf
// Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
'P' , 'C' , 'T' , 0xa9, 0xaa, 'X' , 0xe1, 0xab, 0xac, 0xe2, 0xad, 0xae, 'b' , 0xaf, 0xb0, 0xb1, // 0xd0..0xdf
// а б в г д е ж з и й к л м н о п
'a' , 0xb2, 0xb3, 0xb4, 0xe3, 'e' , 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 'o' , 0xbe, // 0xe0..0xef
// р с т у ф х ц ч ш щ ъ ы ь э ю я
'p' , 'c' , 0xbf, 'y' , 0xe4, 'x' , 0xe5, 0xc0, 0xc1, 0xe6, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 // 0xf0..0xff
};

if ( c >= 'А' ) // А - по русски это 0xc0 в win1251
c = perecod[c - 'А']; // русские буквы в кодировке win1251
else if ( c >= 0x80 ) // спецсимволы, расположенные в знакогенераторе lcd
c += 0x40; // немного передвинем
return( c );
}

Created with The Source Studio - EVALUATION version

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru