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

 
 
> Структура с хранением данных в flash и eeprom, Возможно ли такое в CodeVison?
altlogic
сообщение May 16 2008, 02:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 2-12-06
Из: г. Хабаровск
Пользователь №: 23 035



Здравствуйте!

Потребовалась простенькая структура хранящая часть информации во флеше, а часть в еепром. По документации кодвижина не могу понять как это сделать.
Нужно реализовать нечто подобное:
Код
typedef struct  
{          
   flash unsigned char ModeID;
   flash unsigned char ModeName[10];
   eeprom int DayTemp[7];
   eeprom int NightTemp[7];
   eeprom unsigned char StartDayTime[2];  
   eeprom unsigned char FinishDayTime[2];  
}mode_t;

то есть первые две переменные хранить во флеше, а остальные в еепром. Возможно ли это в кодвижине?

Сообщение отредактировал altlogic - May 16 2008, 02:38


--------------------
С уважением, Вячеслав
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение May 16 2008, 07:25
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Код
          
   flash unsigned char ModeID;
   flash unsigned char ModeName[10];
   eeprom int DayTemp[7];
   eeprom int NightTemp[7];
   eeprom unsigned char StartDayTime[2];  
   eeprom unsigned char FinishDayTime[2];  

typedef struct  
{          
   unsigned char *pModeID;
   unsigned char *pModeName;
   int *pDayTemp;
   int *pNightTemp;
   unsigned char *pStartDayTime;  
   unsigned char *pFinishDayTime;  
}mode_t;

flash mode_t Mode={&ModeID,&ModeName,&DayTemp,&NightTemp,&StartDayTime,&FinishDayTime};


Вполне жизнеспособный костыль...
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение May 16 2008, 07:39
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(_Pasha @ May 16 2008, 11:25) *
Вполне жизнеспособный костыль...

До тех пор, пока нам не понадобится второй экземпляр объекта node_T. Тогда ручками придется насоздавать
Код
flash unsigned char ModeID_2;
   flash unsigned char ModeName_2[10];
   eeprom int DayTemp_2[7];
   eeprom int NightTemp_2[7];
   eeprom unsigned char StartDayTime_2[2];  
   eeprom unsigned char FinishDayTime_2[2];

flash mode_t Mode_2={&ModeID_2,&ModeName_2,&DayTemp_2,&NightTemp_2,&StartDayTime_2,&FinishDayTime_2};


И кстати только сейчас заметил - вы не указываете квалификаторы flash и eeprom у указателей. По идее, не скомпилится... Или жто особенность Codevision?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение May 16 2008, 08:50
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Непомнящий Евгений @ May 16 2008, 10:39) *
До тех пор, пока нам не понадобится второй экземпляр объекта node_T.

Понял.
Код
flash unsigned char ModeID;
flash unsigned char ModeName[10];

Для этих мемберов надо заводить массивы, содержащие все возможные значения, и хранящиеся, ессно, во флеше, типа
Код
flash unsigned char Avail_Modes[Max_Avail_Modes];
flash unsigned char * ModeNameStr[Max_Mode_Names]={&ModeName_1, etc...}


А в структуре, которая нужна автору, добавить индексы, по которым можно найти нужные значения из флеша
Код
typedef struct  
{          
   eeprom unsigned short int ModeID_Index;     // хватит же 256 доступных мемберов ?
   eeprom unsigned short int ModeName_Index;
   eeprom int DayTemp[7];
   eeprom int NightTemp[7];
   eeprom unsigned char StartDayTime[2];  
   eeprom unsigned char FinishDayTime[2];  
}mode_t



Цитата
И кстати только сейчас заметил - вы не указываете квалификаторы flash и eeprom у указателей.

Ага. Прощелкал.
Go to the top of the page
 
+Quote Post



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

 


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


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