Hallo!
Ich sitze schon seit Tagen und bin am verzweifeln!
Ich lese in einem Projekt verschiedene Werte aus einer SD Karte aus und übergebe sie auf ein LCD.
Wenn aufgrund eines Events ein neuer Wert von der SD-Karte gelesen wird, wird ein Flag gesetzt und der Inhalt der SD Datei über die Variable "A" an das LCD weitergegeben
Alles schick! Funzt.
Nun möchte ich aber zur besseren Übersicht, den alten Wert von "A" an "B" übergeben und separat anzeigen, damit ich später sehe, was vor einer Änderung von "A" passiert ist.
Und das funktioniert nicht! Evtl. kann mir jemand einen Tipp geben.
//---------------------------------------------------------------------------------------------------------------
if (Event == true) { // Event vorher von SD auf true, Flag kontrolle auf LCD
A = SDInhalt; // andere Funktion: lcd.print(A)
B = Zwischenspeicher;
Agezeigt = true; //Flag A wurde gezeigt
Event = false;
}
if ((Agezeigt == true)&&(Event== false)) { //wenn oben durchlaufen warte 2 sek dann hole wert
oldmillis = millis();
if (millis() - oldInfomillis >= 2000){ // warte 2sek
// delay(2000);
Zwischenspeicher AB = A; // speichere A in zwischenspeicher
i++; // i zählt zum Test Anzahl der Durchläufe (ob nur je 1x)
Agezeigt = false;
}
}
//------------------------------------------------------------------------------------------------------------
Ohne den Versuch A auf B weiter zu geben, zeigt das LCD bei einem Durchlauf der ersten Schleife kurz die 1 für true und bleibt danach auf 0. Ich LCD wird der A ordentlich angezeigt.
Die Idee am o.g, Code war abzuwarten bis Event die erste Anweisung passiert hat, um dann false zu werden. Erst danach wird 2 sek gewartet bis der Wert A ebenso in einem Zwischenspeicher abgelegt wird. (Ich möchte hiermit die SD Durchläufe abwarten, Event sicher true)
Erst mit einem neuen Event wird dessen SDWert der Variable A übergeben und der Zwischenspeicher an B (=altes A). nach den SD Durchläufen ist Agezeigt wieder true, Event wieder false, 2 sek weiter wird erst A in den Zwischenspeicher geladen. (Hoffte zu verhindern, dass A und B aufgrund der Durchläufe zeitgleich die selben Werte bekommen.)
Leider nur eine Hoffnung! Normaleweise sollte jetzt Event kurz 1 werden und 2 sek später i um eins hochzählen.
Was passiert ist, A und B haben zeitgleich die neuen SD Daten, obwohl i nicht steigt.
Wäre sehr Dankbar für nen Denkanstoß!!!
MFG Marc