как сохранить данные в массиве во флешь память

Yer
Offline
Зарегистрирован: 12.02.2016

Здравствуйте как можно сохранит данные в массиве например massiv [10][20] {} все данные нужно сохранит во флешь память потом по команде скажем if(PIND&(1<<PD2)) есть сигнал то будем уже не записовать а считать данные оттуда 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

В ардуино не флешь, а епром.

Какого типа массив?

Почитай тут https://www.arduino.cc/en/Reference/EEPROM

Но прикинь сперва размер EEPROM -- уместится ли.

Тут хорошие примеры и размеры разного типа...

http://arduino.ru/forum/programmirovanie/zapis-i-chtenie-eeprom-peremenn...

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Я пользую библиотеку EEPROMex.

Пример чтения записи

void getEEPROM () {                  // чтение данных
  if (EEPROM.read(0) != 123) {  // данных нет, записываем по умолчанию
//Параметры по умолчанию при первом запуске
    Set.NoFrostTemp=12;//температура при отсутствие активности > NoFrostTimer
    Set.SleepTemp=18;//температура при отсутствие активности > SleepTimer
    Set.WorkTemp=22;//температура при наличии активности
    Set.SleepTimer=2*60*60*1000;//время до перехода в режим sleep
    Set.NoFrostTimer=6*60*60*1000;//время до перехода в режим NoFrost
    SELCD();//вывод сообщения о записи
    EEPROM.writeBlock(1, Set);//сохраняем настройки
    EEPROM.write(0, 123); // отметили наличие данных
  }
  RELCD();//вывод сообщения о чтении
  EEPROM.readBlock(1, Set);//читаем настройки
}

void saveEEPROM () { // запись данных
  SELCD();//вывод сообщения о записи
  EEPROM.writeBlock(1, Set);//сохраняем структуру в EEPROM
}

 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

yul-i-an пишет:

Я пользую библиотеку EEPROMex.

Пример чтения записи

void getEEPROM () {                  // чтение данных
  if (EEPROM.read(0) != 123) {  // данных нет, записываем по умолчанию
//Параметры по умолчанию при первом запуске
    Set.NoFrostTemp=12;//температура при отсутствие активности > NoFrostTimer
    Set.SleepTemp=18;//температура при отсутствие активности > SleepTimer
    Set.WorkTemp=22;//температура при наличии активности
    Set.SleepTimer=2*60*60*1000;//время до перехода в режим sleep
    Set.NoFrostTimer=6*60*60*1000;//время до перехода в режим NoFrost
    SELCD();//вывод сообщения о записи
    EEPROM.writeBlock(1, Set);//сохраняем настройки
    EEPROM.write(0, 123); // отметили наличие данных
  }
  RELCD();//вывод сообщения о чтении
  EEPROM.readBlock(1, Set);//читаем настройки
}

void saveEEPROM () { // запись данных
  SELCD();//вывод сообщения о записи
  EEPROM.writeBlock(1, Set);//сохраняем структуру в EEPROM
}

 

Возможно она и лучше. Но тут уже C++ надо чуток знать. Одного WIRING недостаточно.

Yer
Offline
Зарегистрирован: 12.02.2016

PROGMEM тогда за что отвечает 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Yer пишет:

PROGMEM тогда за что отвечает 

https://www.arduino.cc/en/Reference/PROGMEM

 

Yer
Offline
Зарегистрирован: 12.02.2016

Получается что в ардуино можно сохранить данные во флеш память, в примере описивается чтение из памяти pgm_read_word а как можно  в теле цикле записовать данные в флеш память

fogary
Offline
Зарегистрирован: 05.03.2016

Yer пишет:

Получается что в ардуино можно сохранить данные во флеш память, в примере описивается чтение из памяти pgm_read_word а как можно  в теле цикле записовать данные в флеш память

Никак, константы же.