Hallo zusammen,
ich versuchen zurzeit einen Datalogger zu programmieren. Dieser soll
alle werte der letzten 10 h abspeichern.
Dafür verwende ich ein RTC Modul. Wenn ich jetzt zum Beispiel um 19:00
Uhr die Daten anschauen will sollen alle werte bis 09:00 sichtbar sein.
Um 08:00 Uhr alle Daten bis 22:00 Uhr.
Habt ihr eine Idee wie man das macht?
Wenn es eine konstante Anzahl von Daten ist, die regelmäßig geschrieben werden --> ein Ringpuffer.
Sonst müsstest du etwas konkreter werden.
Hallo,
Du wirst ein odere mehrerer Array´s und und einen Index benötigen. Ringfuffer wurde bereits genannt, da kann man nach suchen.
.
bitte fang nicht lauter neue Threads mit deinen Fragen an sondern beantworte auch Fragen die dir gestellt werden.
Dir wurde hier und in anderen Foren schon Hilfe angeboten, wenn du aber nicht auf Rückfragen eingehst ist jede weitere Unterstützung unmöglich.
Wie schaut sowas dann aus?
Wobei hier das Schreiben immer erlaubt sein sollte (und ältestes überschreibt) und beliebig oft gelesen werden darf, aber nicht muss.
Aber Details hängen von vielem offenen ab:
Wo und wie?
Jeden Tag eine Datei auf einer SD-Karte, in einer Datenbank, im eigenen System?
Ringspeicher wäre eine Möglichkeit, birgt die Gefahr, das Dir der Speicher knapp wird.
Da keine Aussage zum Controller getroffen wurde, könnte es ein UNO sein. Es fehlen auch Angaben zur Größe des Datensatzes und zur Häufigkeit der Datenaufnahme.
Eine Zeitangabe könnte in einer 32bit-Variablen Datum und Zeit aufnehmen. Braucht 4 byte.
Wenn jede Minute nur die Zeit erfasst wird, sind das in 10 Stunden 600 * 4 byte = 2400 byte.
Da ist noch kein weiteres Datenelement enthalten....
Außer dem auch SD Karten haben begrenzte lösch rate, ist mir passiert auf einmal SD defekt ![]()
Hier evtl auch noch was zum Nachlesen.
Sonst vergrämst Du Dir hier alle Helfer, weil Du nebenan vielleicht schon brauchbare Antworten bekommen hast.