Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
dzrkot
zzzZZZ...
523 / 354 / 94
Регистрация: 11.09.2013
Сообщений: 2,039
1

Сохранение структур в EEPROM AT90CAN128 (CVAVR 1.25)

20.08.2014, 16:39. Просмотров 1743. Ответов 3
Метки нет (Все метки)

Добрый день, у меня такой вопрос:
есть структура
C
1
2
3
4
5
6
struct st
{
unsigned char A[8];
unsigned char B[8];
unsigned char C[8];
} state;
мне необходимо записать в eeprom массив из 100 таких структур(причем инициилизировав их сразу одинаковыми значениями), с возможностью их чтения и перезаписи
не получается даже объявить массив
ругаетcя на строку __eeprom t_state structProg[100];
пишет ошибку:
structure must be stored in the same memory class as defined
Код:
C
1
__eeprom struct st structProg[100];
пробовал так:
C
1
2
3
4
5
6
7
typedef struct{
  unsigned char A[8];
  unsigned char B[8];
  unsigned char C[8];
} t_state;
 
__eeprom  t_state  structProg[100];
эффект тот же, при этом люди с р...кота говорят что на 2.05 code vision avr всё работает
у меня стоит 1.25

Добавлено через 1 минуту
с обычными переменными всё работает, со структурой ругается

Добавлено через 28 минут
вообщем объявление eeprom переменных в 1.25 и 2.05 отличается,
проблема решается так:
C
1
2
3
4
5
6
7
eeprom struct t_state
{
unsigned char A[8];
unsigned char B[8];
unsigned char C[8];
};
__eeprom  struct t_state structProg[100];
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2014, 16:39
Ответы с готовыми решениями:

CVAVR. I2C EEPROM более 256 байт
Возможно, где-то есть ответ, но ничего вразумительного не нашел. Нужно подключить I2C EEPROM на...

Массив структур, сохранение начала каждой из структур
Я создал такую структуру class Lancuch { public: char cos; Lancuch * nastepny; }; Lancuch...

AtmelStudio 6.0 - сохранение EEPROM
Доброго дня. Проблемка в том, что при отладке на эмуляторе, при каждом запуске проекта EEPROM...

Сохранение структуры в EEPROM AVR?
Доброго времени суток! Пишу программу в студии под мегу 16 и возник вопрос. Делаю так: typedef...

Сохранение данных в EEPROM при пропадании питания
Здравствуйте. В моей поделке появилась нужда сохранять переменную (координату) при выключении...

3
Витальич
20.08.2014, 16:43
  #2

Не по теме:

Для IAR __eeprom uint8_t data[3] = {11, 3, 13};
Для Студии uint8_t data[3] EEMEM = {11, 3, 13};
А вот для cv не знаю, не работал с ним :cry:

0
Voland_
1656 / 1045 / 98
Регистрация: 04.01.2010
Сообщений: 3,551
21.08.2014, 14:49 3
Объявление массива переменных в eeprom (для CVAVR):
C
1
2
3
4
5
typedef struct {
  char a[10];
} my_struct;
 
eeprom my_struct ee_data[5];
их же можно и присваивать, через запятую. Только не запутайтесь во вложенности. В моем примере будет:
{ {{1,2,3}}, {{1,2,3}} } и т.д.
Точно версию cvavr где это первый раз использовалось не помню, но не вторая - это точно. Возможно, 1.4 или 1.5
0
ValeryS
Модератор
7719 / 5731 / 742
Регистрация: 14.02.2011
Сообщений: 19,618
Завершенные тесты: 1
21.08.2014, 15:03 4
вот кусок моей программы которая считывает и записывает данные в
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
typedef struct 
{
unsigned char large;
unsigned char patch;
stDmx mem_stDmx[6];
}stMemory;
.......................................
 
eeprom stMemory v_stMemory;
void WriteMemory(void)
{
char i;
v_stMemory.large=large;
v_stMemory.patch=patch;
 
for(i=0;i<SIZE_DMX;i++)
 {
  v_stMemory.mem_stDmx[i]=arr_stDmx[i];
 }
}
void ReadMemory(void)
{
 char i;
large=v_stMemory.large;
patch=v_stMemory.patch;
 
for(i=0;i<SIZE_DMX;i++)
 {
 arr_stDmx[i]= v_stMemory.mem_stDmx[i];
 }
}
версия 2.05

тут главное объявить переменную eeprom
запись и чтение CV сам скомпилирует как надо
1
21.08.2014, 15:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 15:03

ПММ SPS58M02RU/29 процессор в КЗ, eeprom потеряна, нужны прошивки STM32 и eeprom
ПММ BOSCH SPS58M02RU/29 FD9508 SD4P1B 9000968115 EPG70002 Al 02.02 с клапаном бака накопителя в...

Сохранение массива структур
У меня есть Класс Users, в нём массив структур. В структуре планируется около 30 разных полей,...

Сохранение массива структур
Всем привет! Не могу придумать, как удобнее сохранить массив структур в файл. Есть массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru