SD-Karte soll alle jede stunden einen Wert speichern. Das aber nur 5 mal. Nach dem 5ten mal soll immer der älteste Wert gelöschte werden. Die Werte +Uhrzeit zu speichern klappt schon. Vermute das man hier einen for schleife benötigt die ich einfach bis 5 zählen lasse? Bitte um Hilfe LG
:
Bearbeitet durch User
Eva T. schrieb: > Vermute das man hier einen for schleife benötigt die ich einfach bis 5 > zählen lasse? Kann man machen, aber ich würde es anders machen. Ein Array (5 Werte) anlegen, mit den Werten und zum Speichern das Array schreiben. Dann via Schleife die Werte im Array Hochschieben. den Werten den letzten Wert in Feld 5 schreiben Und das Array speichern.
Warum vermischst du eigentlich diesen
1 | if (! rtc.begin()) { |
2 | ...
|
und diesen Klammerunsstil
1 | if (SD.begin()) |
2 | {
|
3 | ...
|
dauernd? Das erschwert das Lesen unheimlich. Kommt das einfach daher, dass du den einen Codeschnipsel dorther und den anderen von woandersher kopiert hast? Eva T. schrieb: > Vermute das man hier einen for schleife benötigt die ich einfach bis 5 > zählen lasse? Ich würde einfach * 1 Stunde abwarten * die geschriebene Datei einlesen, und dabei von den 5 eingelesenen Strings nur die letzten 4 speichern * diese 4 Strings wieder in die Datei schreiben (O_TRUNC "leert" die Datei) * den neuen Wert ebenfalls in die Datei schreiben Denn dann musst du keinen lokalen Puffer vorhalten und verwalten, sondern du kannst dich z.B. bei einem Stromausfall auf die der SD gespeicherten Daten verlassen. Schlaumaier schrieb: > Ein Array (5 Werte) anlegen, .... > Und das Array speichern. Genaus das meinte ich: bei einem Stromausfall? Daten futsch...
:
Bearbeitet durch Moderator
Eva T. schrieb: > SD-Karte soll alle jede stunden einen Wert speichern. Das aber nur 5 > mal. Nach dem 5ten mal soll immer der älteste Wert gelöschte werden. Kann man machen, ist hier aber eher fragwürdig. Bei sooooo wenig Datenaufkommen speichert man das einfach in eine Datei und gut. Vor allem bei den heutigen Speichermengen und Preisen. > Die Werte +Uhrzeit zu speichern klapt schon. Dein Programm ist "leicht" chaotisch. Außerdem sollten das "echte" Programm nicht in die Funktion setup() packen, auch wenn das rein technisch geht. Bei deinem Quelltest sieht man nicht, was einmaliges setup und dauerhaftes Programm ist! > Vermute das man hier einen for schleife benötigt die ich einfach bis 5 > zählen lasse? Nicht ganz. Wenn man es ohne SD-Karte machen würden, dann braucht man einen Ringpuffer, sehr ähnlich zu einem FIFO. Dort schreibt man Daten rein, wobei irgendwann die alten Daten überschrieben werden. > Bitte um Hilfe LG Strukturiere erstmal deinen Quelltext vernünftig. Denn wer den so chaotisch schreibt, der denkt und arbeitet ebenso. Und das wird nix, schon gar nicht als AnfängerInnen ;-) Strukturierte Programmierung auf Mikrocontrollern
Lothar M. schrieb: > Schlaumaier schrieb: >> Ein Array (5 Werte) anlegen, .... >> Und das Array speichern. > Genaus das meinte ich: bei einem Stromausfall? Daten futsch... OK. An ein Stromausfall habe ich nicht gedacht. Aber ich finde 5 Werte auch echt was Wenig. Ne SD-Karte ist groß genug. Jeden Tag ne Datei mit den Datum anlegen und dann mit APPEND einfach dran schreiben. Die 24 Werte pro Tag machen den Käse auch nicht Fett. Mit Display und Tastatur (4 Tasten reichen locker) kann ich mir die letzten Werte auch anzeigen lassen. Einfach von der SD-Karte lesen.
Lothar M. schrieb: > Schlaumaier schrieb: >> Ein Array (5 Werte) anlegen, .... >> Und das Array speichern. > Genaus das meinte ich: bei einem Stromausfall? Daten futsch... Da könnte man aber auch einfach beim Start in der "setup()"-Funktion einmal die Daten von der Karte lesen. Aber ich frage mich auch, warum nur 5 Werte. Heute hat man doch eigentlich kaum noch Karten unter 4 GB, und da passen bei dem Format Daten für die nächsten 19.000 Jahre drauf.
:
Bearbeitet durch User
Falk B. schrieb: > Etwa so. Genau. Immer drauf auf die Karte. ;) Selbst die kleinste Karte reicht locker für einige Jahre. ;)
Rolf M. schrieb: > Aber ich frage mich auch, warum nur 5 Werte. Steht halt so in der Schulaufgabe. Was sonst?
Lothar M. schrieb: > Steht halt so in der Schulaufgabe. Was sonst? Wenn du recht hast, habe ich auch Recht ;) Dann sollen sie Array lernen und keinen Stromausfall ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.