best practice: Wie max. Messwerte speichern?

#5717486
Lesenswert?

Ein kleines Projekt:

-ATMega328
-LCD
-zwei Temperatursensoren

Das Display zeigt die aktuellen Werte der Temperatursensoren an. Beim 
Einschaltvorgang sollen die Maximal (jeweils gemessenen Höchstwerte) für 
drei Sekunden angezeigt werden.

Wenn ich die Werte im Loop im EEPROM speichere, bin ich mit den 100'000 
Schreibzyklen schnell am Ende. Wenn ich es alle 10 Minuten mache, 
bekomme ich den Höchstwert evtl nicht mit. Schön wäre, den Höchstwert in 
eine Varibale zu schreiben und beim Exit diesen zu speichern. Nur eine 
Exit Routine gibt es ja in diesem Sinn nicht, es gibt nur power weg.

Wie gehe ich vor? Jemand eine Idee?
#5717492
Lesenswert?

Philipp G. schrieb:
> Schön wäre, den Höchstwert in
> eine Varibale zu schreiben und beim Exit diesen zu speichern. Nur eine
> Exit Routine gibt es ja in diesem Sinn nicht, es gibt nur power weg.
>
> Wie gehe ich vor? Jemand eine Idee?

Mit Kondensator und Diode kannst du den Controller nach einem Power-Off 
so lange versorgen bis die Werte gespeichert wurden. Ein Eingangspin VOR 
der Diode detektiert den Ausschaltmoment.

Alternative: FRAM
#5717560
Lesenswert?

Frank L. schrieb:
> ich versteh das Problem nicht so richtig. Wenn es nur um die
> Maximalwerte geht müssen Die doch auch nur geschrieben werden wenn es
> einen Neuen gibt. Wenn der aktuelle Messwert unter dem Höchstwert liegt
> wird einfach nix geschrieben. Das sind dann nicht viele Schreibzugriffe.

Hm, da ist was dran. Stimmt.

Cyblord -. schrieb:
> Mit Kondensator und Diode kannst du den Controller nach einem Power-Off
> so lange versorgen bis die Werte gespeichert wurden. Ein Eingangspin VOR
> der Diode detektiert den Ausschaltmoment.

Ich versorge noch die Hintergrundbeleuchtung vom LCD mit. Müsste ich mal 
schauen was die zieht, und die Dimensionierung vom C rechnen ob das 
reicht.

Es ist so eine 'standard' 16x2 LCD Anzeige.
#5717591
Lesenswert?

Philipp G. schrieb:

> Ich versorge noch die Hintergrundbeleuchtung vom LCD mit. Müsste ich mal
> schauen was die zieht, und die Dimensionierung vom C rechnen ob das
> reicht.
>
> Es ist so eine 'standard' 16x2 LCD Anzeige.

Die braucht ~1mA, die Hintergrundbeleuchtung deutlich mehr.
Und rein praktisch, wo liegt das Problem? Erstens ist es nur ein 
Bastelprojekt und 2. läuft dein Board praktisch immer, da gibt es selten 
einen Stromausfall. Und wenn doch, so what! Speichere deinen 
MIN/MAX-Wert, wenn es denn wirklich einen neuen gibt, alle 15min und 
gut. Macht bei 100.000 garantieren Schreibzyklen satte 1000 Tage ~3 
Jahre, real eher deutlich mehr, denn du hast nicht alle 15min einen 
neuen MIN/MAX Wert.
Gast #5717698
Lesenswert?

Geht es wirklich um die absoluten Maximalwerte ohne Zeitbegrenzung?
Da fällt mir eigentlich nur Kühlkettenüberwachung ein.

Wenn kein Stromausfall zu befürchten ist, dann einfach die Meßwerte ins 
RAM schreiben und nur den maximalen Wert ins EEPROM als Ringspeicher.

Bei meinem Gasregler logge ich die Werte auch einfach ins RAM.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren