Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Структуры в CVAVR

Непрочитано 02.02.2009, 21:00  
ua_gruzin
Вид на жительство
 
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
ua_gruzin на пути к лучшему
По умолчанию Структуры в 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 '('

В чем не прав?
Реклама:
ua_gruzin вне форума  
Непрочитано 02.02.2009, 21:36  
ua_gruzin
Вид на жительство
 
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
ua_gruzin на пути к лучшему
По умолчанию

Та же ошибка и на код:

all_menu_array[1].fmax_menu_row = 2;
ua_gruzin вне форума  
Непрочитано 02.02.2009, 21:36  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Может что-то во внешнем файле ? extern добавить возможно следует.

Вы help посмотрели ?
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 02.02.2009, 21:39  
ua_gruzin
Вид на жительство
 
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
ua_gruzin на пути к лучшему
По умолчанию

По хелпе и делал......
Про внешний файл не понял.
Прожект пустой почти.
В данном файле (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;
Снова не хватает "("........
ua_gruzin вне форума  
Непрочитано 02.02.2009, 22:32  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Может вам архив с проектом прицепить.

Попробуйте упростить вашу структуру до рабочего сосотяни и потом постепенно усложняйте.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 02.02.2009, 22:36  
AndreiVV
Гражданин KAZUS.RUN
 
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
AndreiVV на пути к лучшему
По умолчанию

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}
 };
AndreiVV вне форума  
Непрочитано 02.02.2009, 23:38  
ua_gruzin
Вид на жительство
 
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
ua_gruzin на пути к лучшему
По умолчанию

AndreiVV, спс
частично изменив Ваш код - заработало.
ua_gruzin вне форума  
Непрочитано 03.02.2009, 00:09  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Покажите как ? Лучше проект прицепить. Поучимся.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 04.02.2009, 11:47  
ua_gruzin
Вид на жительство
 
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
ua_gruzin на пути к лучшему
По умолчанию

Проджект выкладывать просто нету смысла.... там уже 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}
};
ua_gruzin вне форума  
Непрочитано 04.02.2009, 12:58  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от ua_gruzin
Проджект выкладывать просто нету смысла.... там уже 11 файлов.
я не настаиваю. просто поясню.

Выложить проект можно не выкладываю секретных вещей.

Т.е. скопировать в папку, выкинуть все что не относится к обсуждаемому вопросу и оставить только инициализацию структур - показать как в итоге правильно.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция printf в cvavr 1.25.8 Mitrar Микроконтроллеры, АЦП, память и т.д 10 01.09.2009 15:30
CVAVR while и таймер kr11507 Микроконтроллеры, АЦП, память и т.д 10 13.12.2008 21:29
Програмирование CVAVR buka_2004 Микроконтроллеры, АЦП, память и т.д 54 02.12.2007 20:31
строковые функции в cvavr arc Микроконтроллеры, АЦП, память и т.д 15 10.03.2007 01:14
появился CVAVR v1.25.2 с лекарством avr123-nm-ru Proteus, KiCAD и другие ECAD 14 26.12.2006 19:43


Часовой пояс GMT +4, время: 20:46.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.