Базовый вопрос по работе с EERPOM
- Войдите на сайт для отправки комментариев
Пытаюсь разобраться в работе с памятью EERPOM. Возник вопрос, боюсь он покажется ламерским, но очень хочется разобраться. Я так понимаю, что EERPOM энергонезависимая память. Я записываю растущую переменную в память, растет она от 0 и выше. В районе 100 я делаю ресет. Но когда я пытаюсь вернуться после перезагрузки Arduino к сохраненной переменной, она опять ноль. Помогите разобраться или скажите, что я ошибаюсь и она энергозависимая, это я про память.
#include <EEPROM.h>
int valueAddress = 0;
int value;
int i=0;
void setup(){
Serial.begin(9600);
}
void loop(){
//Записывем переменную в память
EEPROM.write(valueAddress,i);
i++;
delay(1000);
//считываем сохраненную переменную
value = EEPROM.read(valueAddress);
Serial.println(value,DEC); // will print 123
}
Так у тебя первой же строкой в адрес загоняется 0, после ресета.
Тут с одной стороны ты в Setup может считывать сохраненное значение для i
void setup(){
Serial.begin(9600);
i= EEPROM.read(valueAddress); //получаем сохраненную переменную из памяти
}
Но надо понимать, что в этом случае, когда ты первый раз запустишь программу, то она считает данные из этого адреса, а там неизвестно что будет. Тебе надо предусмотреть механизм обнуления переменной и ее отображения в памяти. Можно по нажатию кнопки, а можно по команде с компьютера через Serial.
Спасибо. я кажется все понял. буду делать кнопку для ресета.