Hallo zusammen,
Ich suche nach einer möglichkeit Werte über funktionen hinweg zu speichern und zu verängern.
Genauer gesagt
Ich möchte einen gesamt Laufzeit wert über EEPROM speichern und abrufen.
Dafür habe ich mir überlegt ein mal im Setup die Gesamtlaufzeit vor dem ausschalten abzurufen und anschließend im Loop die aktuelle Laufzeit drauf zu rechnen und das Ergebnis als neue Gesamtlaufzeit zu spreichern.
Ich möchte also im Setup ein mal eine feste Variable1 Erstellen und anschließend im Loop eine neue Variable2 =(Variable1 + X) erstellen wobei in jedem Loop Variable1 gleich bleibt und sich X erhöht.
(Ist übrigens ein ESP32)
Hier mal mein Aktuelles Programm:
#include <Arduino.h>
#include "EEPROM.h"
#define EEPROM_SIZE 12
int Second=0;
int Oldtime=0; // gespeicherte Gesamtzeit nach dem letzen Lauf
void setup() {
Serial.begin(115200);
EEPROM.begin(EEPROM_SIZE);
int Oldtime=EEPROM.read(0); //Alte Gesamtzeit als Oldtime setzen
}
void loop() {
long secsUp = millis()/1000;
Second = secsUp;
int Newtime=Oldtime+Second; //Neue Gesamtzeit errechnen
EEPROM.write(0, Newtime); //Neue Gesamtzeit Speichern
EEPROM.commit();
Serial.println (Second);
Serial.println (Newtime);
Serial.println ();
delay(1000);
}
Ich weiß nur nicht wie ich den abgerufenen Wert von Oldtime aus dem Setup nun in den Loop übernehme.
So wie es da jetzt steht ist es Falsch. Ich weiß. Da nimmt er im Loop Oldtime als 0 aus dem Kopf an.
Neu abrufen kann ich Oldtime vom EEPROM ja im loop nicht weil er überschrieben wird und die akktuelle Zeit dann doppelt und dreifach addiert wird.