uranium 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Здравствуйте, хочу спросить следущее: при использовании const unsigned char для вывода кирилицы на LCD почему-то объединяются несколько переменных? Mне интересно как выводить сообщения на LCD содержащие одинаковые фразы, почему они смешиваются? Вот исходник с результатом: v1.183.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor26 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба В конце строк для вывода на ЖК добавте 0х00 Ваша строка: const unsigned char mes1 [] = {0xbf, 0x65, 0x70, 0xbc, 0x6f, 0xbc, 0x65, 0xbf, 0x70}; //слово "термометр" в кодировке KOI-8R Нужно: const unsigned char mes1 [] = {0xbf, 0x65, 0x70, 0xbc, 0x6f, 0xbc, 0x65, 0xbf, 0x70, 0}; //слово "термометр" в кодировке KOI-8R и так со всеми остальными строками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба А нельзя просто буковками чтоли? Типа: const unsigned char mes1 [] = "термометр"; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба А нельзя просто буковками чтоли? Типа: const unsigned char mes1 [] = "термометр"; Дык у него знакогенератор в КОИ-8, а в этом случае подставится кодовая таблица ОС, стоящей на компьютере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба А нельзя просто буковками чтоли? Типа: const unsigned char mes1 [] = "термометр"; А все ли индикаторы Win-1251 понимают? Dog Pawlowa, Вы меня опередили) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iar 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба А все ли индикаторы Win-1251 понимают? Не видел таких что бы понимали. Там свой специфичный знакогенератор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Не видел таких что бы понимали. Там свой специфичный знакогенератор. Почему, мэлтовские понимают: http://melt.com.ru/work/display/150 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба А все ли индикаторы Win-1251 понимают? Мои - понимают. Через таблицу перекодировки:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Может я не в тему, но "железно" индикатор представляет из себя 2 индикатора 4х20. может где-то в обработчике баг? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Samsony 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Можно просто текстом "термометр" - но для этого используйте текстовый редактор типа Aditor и выставьте нужную кодировку. С Codevision AVR работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uranium 0 13 августа, 2008 Опубликовано 13 августа, 2008 (изменено) · Жалоба Спасибо, сегодня попробую нули добавить, а за что эти нули отвечают? Может я не в тему, но "железно" индикатор представляет из себя 2 индикатора 4х20. может где-то в обработчике баг? Было бы интересно где? Изменено 13 августа, 2008 пользователем _Олег_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Спасибо, сегодня попробую нули добавить, а за что эти нули отвечают? Нулевой символ обозначает конец строки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor26 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Нулевой символ обозначает конец строки ... а у Вас получется, что программа пихает в индикатор все символы, пока не поймает байт 0х00. Вот и наползают строки друг на друга. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kolia 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Я пользуюсь для перекодировки русского язака таблицу code byte Table_coder[64]={ 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 <=> ь э ю я }; byte coder(byte b) { if (b<192) return b; else return Table_coder[b-192]; } Для создания строки удобно пользовать функцию sprintf,(Конец строки добавляется автоматом): sprintf(buffer,"Строка 1"); for(...) buffer[i] =coder(buffer[i]); //Write to LCD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uranium 0 13 августа, 2008 Опубликовано 13 августа, 2008 · Жалоба Я пользуюсь для перекодировки русского язака таблицу Спасибо, я то же так хочу попробовать, но сначала решил сделать просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться