mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Watchdog Mega128 (Daten sichern)


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe hier einen Watchdog auf einem MEGA128 programmiert der auch 
ohne Probleme funktioniert.
Nun möchte ich gerne einige Daten sichern bevor sich der Controller 
verabschiedet.
Ich suche nun schon eine ganze Weile nach einer Möglichkeit jedoch ohne 
Erfolg.
Hat jemand einen Tip da es anscheinend wenn ich mich nicht verlesen habe 
keine ISR dafür gibt.

Thomas

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls Du den eingebauten Watchdog meinst:  Wenn der zubeißt, geht man im
Allgemeinen davon aus, dass der Controller sich in einem undefinierten 
Zustand befindet.  Dafür ist er da.  Da dann kein Verlass mehr auf die 
Daten ist, kann auch nichts gesichert werden - welchen Sinn sollte das 
auch haben?

Du solltest Deine Daten bereits in einem Zustand gesichert
haben, in dem man ihnen noch vertrauen kann.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hazeh,

ich kann ja nicht den ganzen Tag Daten in den EEPROM speichern nur um 
die Daten zu Verfügung zu haben wenn ich Sie mal nach einem Absturz 
brauche und bis dahin ist vieleicht das EEPROM defekt wegen zu vieler 
Schreibzugriffe.
Einen Absturz können auch äussere Einflüsse verursachen die man nicht 
vorhersehen kann.
Ich bin nichte der Profi doch habe ich gesehen das verschiedene 
Controller eine
WDT_vect zur Verfügung haben welche dafür genutzt werden kann die hat 
der 128 jedoch nicht.
Daher die Frage ob es einen Weg gibt dies dennoch zu realisieren.

Thomas

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ein Watchdog-Reset sollte die absolute Ausnahme sein.

>Einen Absturz können auch äussere Einflüsse verursachen die man nicht
>vorhersehen kann.

Welche sind das bei dir? Hast du ein konkretes Problem, oder willst du 
nur übervorsichtig sein?

MfG Spess

Autor: Lui S. (lute)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

der Watchdog im ATmega128 macht wirklich nur einen Reset, wenn er 
zuschlägt.
Du könntest Deine Daten auch in einem externen Speicher z.B. FRAM 
ständig ablegen. FRAM kann nahezu beliebig oft beschrieben werden, er 
ist schnell und er behält die Daten bei Stromausfall.
Eine andere Idee, die mir einfällt, ist den "Watchdog" mit einem Timer 
selber zu schreiben. Du konfigurierst einen Timer so, dass er immer 
läuft und bei Overflow ein Interrupt ausgelöst wird. In die ISR 
schreibst du dann deine Datensicherung und machst dann den Reset. Der 
"Watchdog Reset" wäre dann, den Timer auf 0 zurücksetzen.
Das funktioniert aber nur, wenn dein Controller nicht in einer anderen 
ISR "hängt" und Interrupts grade gesperrt sind. Vielleicht musst Du den 
richtigen Watchdog zusätzlich nutzen um so einen Fall abzufangen. (wobei 
dann keine Daten gesichert werden)

Gruß, Lui

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@spess53,

letzteres, ich schreibe eine Art Log Datei in einen externen EPROM und 
diesen Status wollte ich sichern.
Dann muss ich in eben beim Start eine routine schreiben die den Wert 
ermittelt auch nicht schlimm.

qLui,

ich sehe schon die Daten sind futsch. Wegen dem einen int mache ich 
nicht rum. Die Platine ist schon fertig :-|.

Gruß und Danke an alle

Thomas

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>letzteres, ich schreibe eine Art Log Datei in einen externen EPROM und
>diesen Status wollte ich sichern.
>Dann muss ich in eben beim Start eine routine schreiben die den Wert
>ermittelt auch nicht schlimm.

Na was denn nun, schlägt der Watchdog egal zu oder nicht?

MfG Spess

Autor: Andreas W. (geier99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:

> Daher die Frage ob es einen Weg gibt dies dennoch zu realisieren.
>
Du kannst ja beim Neustart abfragen, ob ein Watchdog Reset aufgetreten 
ist und dann dementsprechend die Daten sicheren. (und hoffen das die 
Daten noch gültig sind :-) )

Besser ist es natürlich eine Checksumme über die Daten zu bilden um 
festzustellen ob diese noch gültig sind.

Bye
 Andreas

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt neuere, pin- und funktionskompatible AVRs, die einen 
Watchdog-Interrupt mit nachfolgendem RESET haben, der Mega1281 zum 
Beispiel.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> Einen Absturz können auch äussere Einflüsse verursachen die man nicht
> vorhersehen kann.

Nein, ein Watchdog spricht nur dann an, wenn durch einen Softwarefehler 
das Programm hängen bleibt.
Gegen Hardwarefehler ist er wirkungslos.

Es kann naürlich sein, daß an den Eingangspins Signale anliegen, mit 
denen Du nicht gerechnet hast und deswegen Dein Programm hängen bleibt.
Aber das sehe ich als Softwarefehler an.
Vermeiden kann man das nämlich durch Softwaremaßnahmen, z.B. durch 
Maskieren unrelevanter Einganspins, Default-Entscheidungen oder 
Timeouts.


Peter

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.