|
Запутался с указателями и строками в CodeVision |
|
|
|
Jan 31 2008, 14:09
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Есть библиотечка под CodeVision - для LCD от Siemens. Там есть функции Код u08 buffer[1][4];
void ram_to_lcd(u08 x,u08 y,unsigned char*str,u08 font,u08 rot, ui16 color) { u08 i=0; while (*str !='\0') { put_char(x+i*CHAR_W,y,*str++,rot,font,color); // 0 deg. rotated i++; x++; }
} //******************************************************вывод строка из ram****************************** void lcd_str_ram(u08 x,u08 y,ui16 var, u08 font,u08 rot,ui16 color) { sprintf(buffer ,"%-i",var); ram_to_lcd(x,y,buffer,rot,font,color);
} Автор библиотеки (один из посетителей этого форума) делает так: Код int variable;
void main() { variable=200; lcd_str_ram(65,75,variable,f8x14,0,black);
} У меня же ничего не выводится. Пробовал через sprintf - ничего не выходит. Слабоват я в указателях - ткните носом.
|
|
|
|
|
 |
Ответов
|
Jan 31 2008, 21:40
|

Местный
  
Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528

|
1. Повнимательнее посмотри, что передаёшь в качестве параметров в функции lcd_str_ram при обращении к ram_to_lcd в переменных 4 и 5. 2. Абсолютно уместно замечание поста 2. Плюс, перед вызовом в variable надо что то запихнуть и сделать преобразование типа указателя: Код variable = "x"; lcd_str_ram(65,75,(unsigned char*)&variable,f8x14,0,black); 3. Несколько непонятно что за хрень скрывается за надписью f8x14, но думаю, что сделано определение через #define4. К посту 4 добавлю, что надо сделать так же преобразование типа указателя на buffer. Действительно, объявление двумерного массива непонятно, проще надо: Код u08 buffer[4];
--------------------
Для связи email: info собака qbit.su
|
|
|
|
|
Jan 31 2008, 23:14
|

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

|
Цитата(bzx @ Feb 1 2008, 00:40)  2. Абсолютно уместно замечание поста 2. Плюс, перед вызовом в variable надо что то запихнуть и сделать преобразование типа указателя: Замечание как раз наоборот не уместное, т.к. массив и есть указатель, buffer и &buffer эквивалентны. Наоборот старайтесь избегать записей вида &массив, потому что в последствии такие записи ведут к глюкам (когда вдруг кто-то захочет поменять массив на указатель). это есть в букваре по C. можете сами проверить Код char buffer[3]; if ( (unsigned)buffer == (unsigned)&buffer) printf("указатель на массив это и есть массив"); else printf("замечание поста 2 уместно"); PS: говорить о чем либо сейчас бесполезно, т.к. мы не знаем наверняка работает ли вывод на LCD вообще.
|
|
|
|
Сообщений в этой теме
Зверюга Запутался с указателями и строками в CodeVision Jan 31 2008, 14:09 Kuzmi4 2 Зверюга - как то оно на первый взгляд смотрится.... Jan 31 2008, 14:37 mrKirill Код примера точно для CodeVision? Jan 31 2008, 16:12 mdmitry Цитата(Зверюга @ Jan 31 2008, 17:09) Кодu... Jan 31 2008, 20:38 defunct ЦитатаУ меня же ничего не выводится.
может совсем ... Jan 31 2008, 21:17 Зверюга Господа, вывод на LCD работает. СТроки из flash вы... Feb 1 2008, 06:20 bzx Сделай так
Кодchar variable[32];
...
spri... Feb 1 2008, 07:53 Kuzmi4 2 defunct - под рукой конечно счас нету винавра и ... Feb 1 2008, 09:13 Сергей Борщ Цитата(Kuzmi4 @ Feb 1 2008, 11:13) То ест... Feb 1 2008, 11:10 defunct Цитата(Kuzmi4 @ Feb 1 2008, 12:13) То ест... Feb 1 2008, 11:52 Зверюга Цитатаchar variable[32];
...
sprintf ( variable, ... Feb 1 2008, 10:44 bzx Цитата(Зверюга @ Feb 1 2008, 13:44) ЧТо-т... Feb 1 2008, 11:13 Kuzmi4 2 defunct - стоп:
1) "...Если variable - масс... Feb 1 2008, 12:09 defunct Цитата(Kuzmi4 @ Feb 1 2008, 15:09) 2 defu... Feb 1 2008, 12:19 Kuzmi4 2 defunct - я на счёт
(char *)p1 = (char *)0x10... Feb 1 2008, 12:36 defunct Цитата(Kuzmi4 @ Feb 1 2008, 15:36) Просто... Feb 1 2008, 12:47 Kuzmi4 2 defunct - ладно, как доберусь к винавру с студие... Feb 1 2008, 12:56 defunct Ок, доберетесь - отпишите. Feb 1 2008, 13:02 BelTech 2 зверюга
ты вариант от bzx пробовал? у меня вро... Feb 1 2008, 19:00 Kuzmi4 2 defunct - пробовал специально
func( buffer );
... Feb 1 2008, 22:36 Зверюга BelTech
Цитатадавно писал, уже не помню, пока всё ... Feb 2 2008, 06:15 Зверюга Короче, вот это работает:
Цитатаchar flash *str;
... Feb 2 2008, 16:09 BelTech зачем нужна функция Lcd_str_ram
Я хотел её запихнк... Feb 2 2008, 16:50 Зверюга BelTech
кстати, какова скорость, fps?
У меня что-т... Feb 2 2008, 17:07 BelTech да, закрашенный прямоугольник на глаз долго рисует... Feb 2 2008, 17:18 Зверюга И вот еще что... у немцев есть библиотека glcd - н... Feb 2 2008, 17:32 BelTech только что, убирал spi2x , странно, скорость отрис... Feb 2 2008, 17:49 Зверюга Нет. Ну выложи с иконками. Feb 2 2008, 18:05 BelTech вот недоделанный проект, может пригодиться. Feb 2 2008, 18:19 Зверюга все работает, иконки грузятся, спасибо. однако над... Feb 2 2008, 18:36 BelTech ну так у этих людей и надо спрашивать про fps, мен... Feb 2 2008, 18:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|