mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik hilfe für watchdog-Routine


Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh die Beschreibung des Manuals des mega128 zum Watch Dog Timer
nicht.
Ich verstehe dass ich mit WDP 0 - 2 die Zeit einstellen kann nach der
der Timer abläuft und ich kann ihm mit dem WDE aktivieren, aber was
muss ich in der Software tun, um zu verhindern, dass der WD auftritt?
Ich möchte den WD nicht ausschalten. Ich möchte das Ablaufen des Timers
verhindern.

Autor: Schorschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

du musst den WD - reseten.
einmal oder mehrmals in deiner endlosschleife.
Die Anzahl der Resets ist abhängig von der Eingestellten
WD-Zeit und die Ablaufzeit deiner Schleife.

Geresetet wird dieser über einen Bit im WD-Register.

Gruss,
schorschi.

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ist das klar, die Frage ist:
Welches Bit und in welcher Reihenfolge weil in der Regel und so wohl
auch hier, zur Sicherheit meist mehrer Bits gelöscht oder geschrieben
werden müssen.

Ich finde nur WDCE, WDE, WDP2, WDP1 und WDP0
WDP2 - 0 ist die Zeit
WDE ist Watchdog Enable
und
WDCE muss "1" sein, damit WDE gelöscht werden kann..
Hab ich was übersehen?

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verstehe es nicht. auch im RISC-Controller Buch steht nur, wie man
den WD abschaltet, aber nicht, wie man den counter resetet. Auch mit
dem Versuch den WD ab- und anschließend neu initialisiert wieder
einzuschalten hats nicht geklappt. Zig Timingdiagramme und
Beschreibungen wie der WD einen Reset ausführt. Im MEGA168 kann man
sogar noch einen Interrupt freischalten, aber im Codebeispiel steht
auch wieder nur, wie der WD ausgeschaltet wird...
Ich glaub ich gebs auf.

Autor: Olaf_K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Watchdog wird einfach mit der WDR-Anweisung rückgesetzt (siehe AVR
Instruction Set).

MfG Olaf

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
asm("WDR"); ?? Etwas in der Art?

Autor: Jens D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.