роботы робототехника микроконтроллеры


 Страниц (2): « 1 [2]   

> Без описания
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



Ну вроде выводит текст теперь. То что у меня весь экран засвечивался это я контраст перекрутил)
 
 Top
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



А не подскажите таблицу кодировки символов, а то весь вечер пропарился ничего не смог сделать, хотя экран заявлен как англо-русский.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



вы читали даташит на контроллер дисплея?
HD44780, там есть две таблицы, одна с китайскими символами, вторая - с кирилицей.
вот оттуда и брать коды к кирилице.

Но можно было и самому накалякать: увеличивайте счётчик в цикле и выводите его как символ
 
 Top
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



nest пишет:
вы читали даташит на контроллер дисплея?
HD44780, там есть две таблицы, одна с китайскими символами, вторая - с кирилицей.
вот оттуда и брать коды к кирилице.

Но можно было и самому накалякать: увеличивайте счётчик в цикле и выводите его как символ

Да я как раз эту таблицу последней пробовал, выводил на дисплей коды, выводило какойто левый знак. Попробую сам пробить адреса как вы говорите, хотя это довольно смешно, придётся вручную подбирать все коды.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



ну все коды подбирать не надо, оно всё по алфавиту Улыбка
 
 Top
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



nest пишет:
ну все коды подбирать не надо, оно всё по алфавиту Улыбка

Состряпал двухмерный массив, не думал что настолько геморно будет, не одной таблице не соответствует по кодам.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



латинские то соответствуют?
 
 Top
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



nest пишет:
латинские то соответствуют?

Только если писать прям буквами, если лесть в коды то полный мусор лезет
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



значит что то вы не так делаете.

LCD_Data(0x33); - так?
 
 Top
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



nest пишет:
значит что то вы не так делаете.

LCD_Data(0x33); - так?

Ну да
(Добавление)
Может подскажете кто знает Си лучше чем я, вот сделал функцию которая получает строку, и посимвольно просматривает её, если символ есть в массиве то заменяет его кодом из массива, если нету то оставляет как есть, почемуто работает неправильно.

CODE:

int Func (char* Data)
{
size_t LenData = strlen( Data ) + 1; /*Длинна строки*/
char* TempBuffer = ( char* ) malloc( LenData ); /*Выделение памяти под буфер размером со строку Data*/
int k;
char *IndexData = &Data[0];
char *IndexBuffer = &TempBuffer[0];

unsigned char* Symbols[107][2] =
{
{"А",65}, {"Б",160}, {"В",66}, {"Г",161}, {"Д",224}, {"Е",69},
{"Ё",162}, {"Ж",163}, {"З",164}, {"И",165}, {"Й",166}, {"К",75},
{"Л",167}, {"М",77}, {"Н",72}, {"О",79}, {"П",168}, {"Р",80},
{"С",67}, {"Т",84}, {"У",169}, {"Ф",170}, {"Х",88}, {"Ц",225},
{"Ч",171}, {"Ш",172}, {"Щ",226}, {"Ъ",173}, {"Ы",174}, {"Ь",173},
{"Э",175}, {"Ю",176}, {"Я",177},

{"а",97}, {"б",178}, {"в",179}, {"г",180}, {"д",227}, {"е",101},
{"ё",181}, {"ж",182}, {"з",183}, {"и",184}, {"й",185}, {"к",186},
{"л",187}, {"м",188}, {"н",189}, {"о",111}, {"п",190}, {"р",112},
{"с",99}, {"т",191}, {"у",121}, {"ф",228}, {"х",120}, {"ц",229},
{"ч",192}, {"ш",193}, {"щ",230}, {"ъ",194}, {"ы",195}, {"ь",196},
{"э",197}, {"ю",198}, {"я",199},

{"!",32}, {" ",33}, {"^",94}, {"#",35}, {"$",36}, {"%",37},
{"&",38}, {"'",39}, {"(",40}, {")",41}, {"*",42}, {"+",43},
{",",44}, {"-",45}, {".",46}, {"/",47}, {"0",48}, {"1",49},
{"2",50}, {"3",51}, {"4",52}, {"5",53}, {"6",54}, {"7",55},
{"8",56}, {"9",57}, {":",58}, {";",59}, {"<",60}, {">",61},
{"?",62}, {"[",91}, {"]",93}, {"_",95}, {"~",237}, {"@",238},
{"`",200}, {"|",201}, {"№",206}
}; //~ - колокоьчик, @ - еврокруг, ` - <<, | - >>, { = левая ковычка, } - правая ковычка, № - f

while( *IndexData )
{
for(k=-1; k<sizeof(Symbols);k++)
{
if( *Symbols[k][0] == *IndexData )
{
*IndexBuffer = Symbols[k][1];
LCDsendChar(Symbols[k][1]);
goto next;
}
*IndexBuffer = *IndexData;
LCDsendChar(*IndexData);
}
next:
IndexData++;
IndexBuffer++;
}
//sprintf(Temp, TempBuffer);
return TempBuffer;
}
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



странно.
если буквами работает, а кодами нет - чтото не так с кодом.
 
 Top
FranzSib Post Id


Лейтенант


Сообщений всего: 23
Дата рег-ции: Сент. 2011  



Функция должна вернуть строчку где русские символы и ещё кое какие заменены кодами.
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Абстрактный пример вывода символа:
function('П');
function('\x8F');
В обоих случаях на экране появится буква П.

(Отредактировано автором: 06 Сентября, 2011 - 19:00:17)

 
 Top
Страниц (2): « 1 [2]
« Микроконтроллеры »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru