|
Строковые и символьные типы в AVR С |
|
|
|
Mar 5 2006, 13:31
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Работаю с индикатором LCD через ImageCraft Вот две функции: Цитата void LcdChr ( LcdFontSize size, byte ch ) { byte i, c; byte b1, b2; int tmpIdx;
if ( LcdCacheIdx < LoWaterMark ) { // Update low marker. LoWaterMark = LcdCacheIdx; }
if ( (ch < 0x20) || (ch > 0x7b) ) { // Convert to a printable character. ch = 92; }
if ( size == FONT_1X ) { for ( i = 0; i < 5; i++ ) { LcdCache[LcdCacheIdx++] = FontLookup[ch - 32][i] << 1; } } else if ( size == FONT_2X ) { tmpIdx = LcdCacheIdx - 84;
if ( tmpIdx < LoWaterMark ) { LoWaterMark = tmpIdx; }
if ( tmpIdx < 0 ) return;
for ( i = 0; i < 5; i++ ) { c = FontLookup[ch - 32][i] << 1; b1 = (c & 0x01) * 3; b1 |= (c & 0x02) * 6; b1 |= (c & 0x04) * 12; b1 |= (c & 0x08) * 24;
c >>= 4; b2 = (c & 0x01) * 3; b2 |= (c & 0x02) * 6; b2 |= (c & 0x04) * 12; b2 |= (c & 0x08) * 24;
LcdCache[tmpIdx++] = b1; LcdCache[tmpIdx++] = b1; LcdCache[tmpIdx + 82] = b2; LcdCache[tmpIdx + 83] = b2; }
// Update x cursor position. LcdCacheIdx += 11; }
if ( LcdCacheIdx > HiWaterMark ) { // Update high marker. HiWaterMark = LcdCacheIdx; }
// Horizontal gap between characters. LcdCache[LcdCacheIdx++] = 0x00; }
/*--------------------------------------------------------------------------------------------------
Name : LcdStr
Description : Displays a character at current cursor location and increment cursor location according to font size.
Argument(s) : size -> Font size. See enum. dataPtr -> Pointer to null terminated ASCII string to display.
Return value : None.
--------------------------------------------------------------------------------------------------*/ void LcdStr ( LcdFontSize size, byte *dataPtr ) { while ( *dataPtr ) { LcdChr( size, *dataPtr++ ); } } ЧТо-то не получается у меня... LcdStr(1,"hello"); LcdChr(1,'f'); не выводит ничего, LcdChr(1,"f"); - выдает ошибку found "pointer to char" expected "unsigned char" Что делать?
|
|
|
|
Сообщений в этой теме
zheka Строковые и символьные типы в AVR С Mar 5 2006, 13:31 beer_warrior ЦитатаLcdStr(1,"hello"); LcdChr(1,'f... Mar 5 2006, 14:00 zheka Коллега! Честное слово, обижаете. Конечно увер... Mar 5 2006, 14:13 beer_warrior Библиотечка достточно объемная и без знания индика... Mar 5 2006, 14:46 zheka Хм.. разобрался я с буквами. Проблема свелась толь... Mar 5 2006, 15:58 vet Просто строка "abcdef" в данном случае ... Mar 5 2006, 16:21 zheka ЦитатаПоменяйте тип принимаемого параметра на byte... Mar 5 2006, 17:09 zheka Ну что-то я совсем запутался с типами....
Надо мн... Mar 6 2006, 15:40 vet Ну так по передаваемому в функцию адресу лежит чис... Mar 6 2006, 16:14 zheka Я привел текст функции LcdStr.
Вызываю я ее так :... Mar 6 2006, 17:25 Old1 Цитата(zheka @ Mar 6 2006, 21:25) Я приве... Mar 6 2006, 19:24 zheka И как вообще организовать массив из строк? Mar 6 2006, 18:38 zheka __flash byte mystring[]="abcde"; для это... Mar 6 2006, 19:53 defunct Когда появляется сразу сильно много тупых вопросов... Mar 6 2006, 20:44 zheka defunct, знаете, в С для AVR я ноль.
В некоторых д... Mar 6 2006, 20:53 defunct Цитата(zheka @ Mar 6 2006, 22:53) defunct... Mar 6 2006, 21:02 zheka Знаете, бегло просмотрел последнюю ссылку в течени... Mar 6 2006, 21:10 defunct Цитата(zheka @ Mar 6 2006, 23:10) А перва... Mar 6 2006, 21:21 dxp Цитата(zheka @ Mar 7 2006, 03:10) А перва... Mar 7 2006, 05:15 WHALE Блин,да открой ты хелп к кодвижину,там безумно под... Mar 7 2006, 11:25 freux Золотые слова, dxp.
Подтверждаю, вот недавно обкат... Mar 7 2006, 11:26 zheka Умные тут все. Судя по постам даже не вчитывались ... Mar 7 2006, 18:22 defunct Цитата(zheka @ Mar 7 2006, 20:22)
zheka,... Mar 7 2006, 18:52 zheka Ладно, замяли. Я сам разобрался и ладно.
Продолжим... Mar 7 2006, 19:17 WHALE не знаю,кодвижн у меня нормально передает русские ... Mar 7 2006, 19:30 zheka Ну у меня теперь тоже нормально передает - разобра... Mar 8 2006, 08:22 WHALE zheka Я еще раз насчет строковых констант-имхо,ты ... Mar 8 2006, 18:19 zheka Я работаю с индикатором от Nokia 3310 (контроллер... Mar 8 2006, 18:30 kv_addr Что касается фонта, то есть такая простенькая утил... Mar 9 2006, 01:54 zheka RE: Строковые и символьные типы в AVR С Mar 13 2006, 16:57 defunct Цитата(zheka @ Mar 13 2006, 18:57)
LcdC... Mar 13 2006, 20:23 beer_warrior Сядь и спокойно подумай - как производяться эти де... Mar 13 2006, 18:57 zheka ЦитатаИ ты предполагаешь, что компилятор сам найде... Mar 13 2006, 19:46 beer_warrior Увы и ах, я тоже подпишусь под постом dxp.
Есть яз... Mar 13 2006, 20:01 zheka Ну вот:
flash unsigned char f[]="123456... Mar 14 2006, 18:23 vet Куда показывает ptr_to_ram ? Mar 14 2006, 18:44 beer_warrior Тут непонимание системного уровня.
1.Делаем буфер ... Mar 14 2006, 19:38 zheka Цитата1.Делаем буфер в RAM
unsigned char r[16];
... Mar 14 2006, 21:43 freux [quote name='zheka' date='Mar 15 2006,... Mar 15 2006, 09:31 WHALE vet же сказал,у тебя *ptr_to_ram не инициализирова... Mar 15 2006, 06:05 defunct 2 zheka.
Вы так и не ответили на мой вопрос. Отде... Mar 15 2006, 07:08 zheka Ладно, господа профессионалы, высочайшего класса.
... Mar 15 2006, 16:47 defunct Цитата(zheka @ Mar 15 2006, 18:47) Но не ... Mar 15 2006, 17:06  Petka Цитата(defunct @ Mar 15 2006, 20:06) ...
... Mar 16 2006, 07:33   defunct Цитата(Petka @ Mar 16 2006, 09:33) Цитата... Mar 16 2006, 18:15    Petka Цитата(defunct @ Mar 16 2006, 21:15) Цита... Mar 17 2006, 07:13     defunct Цитата(Petka @ Mar 17 2006, 09:13) Забавн... Mar 17 2006, 20:55 vet Цитата(zheka @ Mar 15 2006, 19:47) Ладно,... Mar 15 2006, 18:03 WHALE >>Но не все же хранить во флеше, что-то гене... Mar 15 2006, 17:43 zheka ЦитатаIMHO выгоднее написать 2 отдельные функции:
... Mar 15 2006, 17:50 defunct Цитата(zheka @ Mar 15 2006, 19:50) Ну? 1 ... Mar 15 2006, 21:20 WHALE Действительно,твой пример работать не будет-явная ... Mar 15 2006, 19:23 zheka Итак господа, продолжаем расследование.
Смеялись в... Mar 16 2006, 14:44 beer_warrior А куда указывает указатель s?
ПС если есть желан... Mar 16 2006, 15:46 zheka На строку s. В строку s копируется в данном случа... Mar 16 2006, 16:15 vet zheka
А ругаться не надо. Внимательно прочтите мой... Mar 16 2006, 16:32 beer_warrior char *s - это не строка, это указатель на строку.Э... Mar 16 2006, 16:51 beer_warrior Вдогонку,
совершенно непонятно зачем нужен sprint... Mar 16 2006, 17:05 zheka ЦитатаА ругаться не надо. Внимательно прочтите мой... Mar 16 2006, 17:33 zheka И strcpy тоже работает.
И все же, объясните, в че... Mar 16 2006, 17:45 WHALE zheka Разницы нету-это две возможные формы в CodeV... Mar 16 2006, 18:07 beer_warrior А вот это же детали конкретного компилятора.
char*... Mar 16 2006, 18:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|