| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Структуры в CVAVR
02.02.2009, 21:00
|
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
Структуры в CVAVR
Привет.
Колупаю сишку.
Возник вопрос.
Есть задача создать масив структур опеределенного типа.
.. долго писать, лучше посмотрите на код.
|
Код:
|
typedef struct {
char str[20];
unsigned char menu_type; // 0...255
unsigned int variable_address; // 0...65535
unsigned char next_menu_ID; // 0...255
unsigned char prev_menu_ID; // 0...255
} menu_string;
flash struct flash_menu {
unsigned char max_menu_row; // 0...255
unsigned char current_menu_row; // 0...255
menu_string menu_structure[10];
} all_menu_array[10];
//---------------------------------------------------------------------------------------
all_menu_array[1].menu_structure[1]={"w",1,1,1,1}; |
Компилятору не нравится строка
all_menu_array[1].menu_structure[1]={"w",1,1,1,1};
Пишет что:
Error: D:\cvavr2\my_project\menu_text.c(1  , included from: lcd_project.c: missing '('
В чем не прав?
|
|
|
|
02.02.2009, 21:36
|
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
Та же ошибка и на код:
all_menu_array[1].fmax_menu_row = 2;
|
|
|
|
02.02.2009, 21:36
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Может что-то во внешнем файле ? extern добавить возможно следует.
Вы help посмотрели ?
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
02.02.2009, 21:39
|
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
По хелпе и делал......
Про внешний файл не понял.
Прожект пустой почти.
В данном файле (lcd_project.c) только данный код и все.
Записал как:
|
Код:
|
typedef struct {
char str[20];
unsigned char menu_type; // 0...255
unsigned int variable_address; // 0...65535
unsigned char next_menu_ID; // 0...255
unsigned char prev_menu_ID; // 0...255
} menu_string;
flash struct flash_menu {
unsigned char first_menu_row; // 0...255
unsigned char max_menu_row; // 0...255
unsigned char current_menu_row; // 0...255
menu_string menu_structure[10];
} all_menu_array[2]={
{1,1,1,
{{"wewqe",1,1,1,1},{"132141",2,2,2,2}}},
{1,1,1,
{{"wewqe",1,1,1,1},{"132141",2,2,2,2}}}
}; |
Ругается при обращении типа:
|
Код:
|
unsigned int temp;
temp= all_menu_array[1].menu_structure[1].variable_address; |
Снова не хватает "("........
|
|
|
|
02.02.2009, 22:32
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Может вам архив с проектом прицепить.
Попробуйте упростить вашу структуру до рабочего сосотяни и потом постепенно усложняйте.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
02.02.2009, 22:36
|
|
|
Гражданин KAZUS.RUN
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
|
all_menu_array [1].menu_structure[0]={"w",1,1,1,1};
попробуйте так
|
Код:
|
typedef flash struct menu{
flash char *str;
flash unsigned char menu_type; // 0...255
flash unsigned int variable_address; // 0...65535
flash unsigned char next_menu_ID; // 0...255
flash unsigned char prev_menu_ID; // 0...255
} menu_string;
typedef flash struct flash_menu {
flash unsigned char max_menu_row; // 0...255
flash unsigned char current_menu_row; // 0...255
flash menu_string *menu_structure;
} all_menu_array;
//---------------------------------------------------------------------------------------
flash menu_string select1[]={
{"A",1,1,2,1},
{"B",2,2,3,1},
{"C",3,3,4,2}
};
flash all_menu_array menu1[]={
{1,1,select1}
}; |
|
|
|
|
02.02.2009, 23:38
|
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
AndreiVV, спс 
частично изменив Ваш код - заработало.
|
|
|
|
03.02.2009, 00:09
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Покажите как ? Лучше проект прицепить. Поучимся.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
04.02.2009, 11:47
|
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
Проджект выкладывать просто нету смысла.... там уже 11 файлов.
Что конкретно подошло - оставил определение местоположения переменной (директива flash) только для структуры all_menu_array. Все остальные убрал.
И оставил
|
Цитата:
|
flash menu_string select1[]={
{"A",1,1,2,1},
{"B",2,2,3,1},
{"C",3,3,4,2}
};
flash all_menu_array menu1[]={
{1,1,select1}
};
|
|
|
|
|
04.02.2009, 12:58
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
|
Сообщение от ua_gruzin
|
|
Проджект выкладывать просто нету смысла.... там уже 11 файлов.
|
я не настаиваю. просто поясню.
Выложить проект можно не выкладываю секретных вещей.
Т.е. скопировать в папку, выкинуть все что не относится к обсуждаемому вопросу и оставить только инициализацию структур - показать как в итоге правильно.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:46.
|
|