ESP32でEEPROMをつかう
code:arduino
//
//
struct DATA_SET {
int val_a;
int val_b;
};
DATA_SET data;
void load_data() {
EEPROM.get<DATA_SET>(0, data);
if (strcmp(data.check, DATA_VERSION)) {
data.val_a = DEFAULT_VAL_A;
data.val_b = DEFAULT_VAL_B;
}
}
void save_data() {
strcpy(data.check, DATA_VERSION);
EEPROM.put<DATA_SET>(0, data);
EEPROM.commit();
}
void setup() {
Serial.begin(115200);
EEPROM.begin(1024);
load_data();
data.val_a += 1;
save_data();
Serial.println("");
Serial.print("data.val_a: ");
Serial.println(data.val_a);
}
void loop() {
}
RESETボタンを押すごとに data.val_a がインクリメントされる
EEPROM.put<DATA_SET>(0, data); の山かっこはC++のテンプレート関数の呼び出し