Forum: Mikrocontroller und Digitale Elektronik best practice: Wie max. Messwerte speichern?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Philipp G. (geiserp01)


Bewertung
0 lesenswert
nicht 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?

: Bearbeitet durch User
von Cyblord -. (cyblord)


Bewertung
1 lesenswert
nicht 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

: Bearbeitet durch User
von Falk B. (falk)


Bewertung
1 lesenswert
nicht lesenswert

von Philipp G. (geiserp01)


Bewertung
0 lesenswert
nicht lesenswert
aha, les' ich mir kurz alles durch, melde mich wieder.

von Frank L. (hermastersvoice)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Philipp G. (geiserp01)


Bewertung
0 lesenswert
nicht 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.

von Falk B. (falk)


Bewertung
0 lesenswert
nicht 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.

von Cyblord -. (cyblord)


Bewertung
0 lesenswert
nicht 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.

Ja und die MUSS dann unbedingt mit in dem Notstromkreis hängen? Bau halt 
deine Verschaltung bisschen um.

von Sebastian R. (sebastian_r569)


Bewertung
0 lesenswert
nicht lesenswert
Jop.

Nur einen neuen Wert speichern, wenn er wirklich größer als der vorher 
gespeicherte ist. Ein Lesezugriff führt zu keinem Verschleiß der 
Speicherzelle.

von Cyblord -. (cyblord)


Bewertung
0 lesenswert
nicht lesenswert
Sebastian R. schrieb:
> Jop.
>
> Nur einen neuen Wert speichern, wenn er wirklich größer als der vorher
> gespeicherte ist. Ein Lesezugriff führt zu keinem Verschleiß der
> Speicherzelle.

DAS ist ja auch trivial. Hilft aber nicht bei langsam steigenden oder 
sinkenden Werten.

von Jens M. (schuchkleisser)


Bewertung
0 lesenswert
nicht lesenswert
Speicher den Wert einfach in 20 Zellen reihum ab (Ringspeicher).
Beim lesen gewinnt die mit dem höchsten Wert, der Verschleiß verteilt 
sich auf 20 Zellen, also 20Mio Saves.

von Philipp G. (geiserp01)


Bewertung
0 lesenswert
nicht lesenswert
Klingt alles sehr einleuchtend, danke Leute. Ich frage mich manchmal 
warum ich selber nicht auf sowas komme.

von svensson (Gast)


Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.