#include <Preferences.h>
Preferences prefs; // lokaler Langzeitspeicher (Eprom)
typedef struct {
double wert_eins;
double wert_zwei;
} test;
test testarray[20];
double wert_eins=0;
double wert_zwei=0;
void setup() {
Serial.begin(115200);
set_values(2021, 2.44, 12.44);
set_values(2022, 3.44, 13.44);
// Hier gelingt die Schleife
for (uint16_t jahr = 2021; jahr <= 2042; jahr++) {
Serial.println(jahr);
}
// Hier läuft sie munter übers Jahr 2042 hinaus
get_values();
}
void loop() {
// put your main code here, to run repeatedly:
}
void get_values() {
prefs.begin("settings", false);
size_t schLen = prefs.getBytes("values_set", NULL, 0);
char buffer[schLen];
prefs.getBytes("values_set", buffer, schLen);
memcpy(testarray, buffer, schLen);
for (uint16_t jahr = 2021; jahr <= 2041; jahr++) {
delay(500);
wert_eins=testarray[jahr-2021].wert_eins;
wert_zwei=testarray[jahr-2021].wert_zwei;
Serial.println("Jahr:" + (String)jahr + " --> Wert_eins:" + (String)wert_eins + ", Wert_zwei:" + (String)wert_zwei);
}
prefs.end();
}
void set_values(uint16_t jahr, double wert_eins, double wert_zwei) {
// Werte speichern
prefs.begin("settings", false);
testarray[jahr-2021].wert_eins=wert_eins;
testarray[jahr-2021].wert_zwei=wert_zwei;
prefs.putBytes("values_set", &testarray, sizeof(testarray));
prefs.end();
}