реклама на сайте
подробности

 
 
> Строковые и символьные типы в AVR С
zheka
сообщение Mar 5 2006, 13:31
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 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"

Что делать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zheka
сообщение Mar 6 2006, 21:10
Сообщение #2


Гуру
******

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



Знаете, бегло просмотрел последнюю ссылку в течении 30 секунд - раз 5 наткнылся на мысль, что отвлекать от темы на мелочи и пустяки вредно. Так вот не отвлекайте.

А первая ваша ссылка на язык С - что-то я не вижу там ничего связанного с AVR. И вы мне это рекомендуете после того, как я (новичок) 3 час переделывал проект, заточенный под ImageCraft, в CodeVision.

Интересно, вам лень ответить на мой вопрос? Наверное вы сами не знаете на него ответ.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 6 2006, 21:21
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(zheka @ Mar 6 2006, 23:10) *
А первая ваша ссылка на язык С - что-то я не вижу там ничего связанного с AVR. И вы мне это рекомендуете после того, как я (новичок) 3 час переделывал проект, заточенный под ImageCraft, в CodeVision.

Понимаете, есть отдельно C и есть отдельно AVR. Вы зашли в тематический форум AVR, который посвящается по больше части особенностям AVR, а не особенностям языка C. "Отдельно мухи, отдельно котлеты", а вы пытаетесь совместить сразу и то и то, от того получается такое громадное количество вопросов, вплоть до совсем не подходящих к тематике конференции:
Цитата
И как вообще организовать массив из строк?

Вам же будет проще разобраться в ваших вопросах, если вы разделите вашу задачу изучения AVR+C, на две отдельные задачи - изучение C и изучение AVR. Получится конечно несколько дольше, но зато точно качественнее.

Цитата
Интересно, вам лень ответить на мой вопрос? Наверное вы сами не знаете на него ответ.

мне не лень, иначе бы я не тратил свое время на общение с Вами. Просто предыдущие посты мне подсказывают, что это не будет Вашим последним вопросом, т.к. имеют место пробелы в азах.

Цитата
Знаете, бегло просмотрел последнюю ссылку в течении 30 секунд - раз 5 наткнылся на мысль, что отвлекать от темы на мелочи и пустяки вредно. Так вот не отвлекайте.

Все-таки прочитайте, оно полезно будет smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016