best practice: Wie max. Messwerte speichern?

OP #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
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.