mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Watchdog mit Prescaler bei PIC benutzen


Autor: Mark Thalle (bitts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte den Watchdog zur Überwachung mit dem Vorteiler 1:4 benutzen, 
stolpere aber gerade über die Beschreibung des Befehls CLRWDT für den 
16F84.

CLRWDT soll laut dem Data Sheet den Prescaler zurücksetzen. Heißt das, 
dass man bei jedem CLRWDT auch den Prescaler neu setzen muss?


Gibt es irgendwo ein kleines Beispielprogramm herunterzuladen, welches 
nur den Watchdog aktiviert, Prescaler setzt und in einer Schleife CLRWDT 
ausführt?

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auszug aus dem Datenblatt PIC16F84A, Seite 30

The CLRWDT and SLEEP instructions clear the WDT
and the postscaler (if assigned to the WDT) and prevent
it from timing out and generating a device
RESET condition.

Der Prescaler (Postscaler) hat keine eigene Adresse und ist deshalb vom 
Programm aus nicht zugänglich.

Autor: Mark Thalle (bitts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf Seite 38 steht:

###################################
CLRWDT    Clear Watchdog Timer

Syntax:[ label ]   CLRWDT

Operands:   None
Operation:   00h -> WDT
             0   -> WDT prescaler,
             1   -> TO
             1   -> PD

Status Affected:   TO, PD

Description: CLRWDT instruction resets the Watchdog Timer. It also 
resets the
prescaler of the WDT. Status bits and PD are set. TO and PD are set.
####################################


Vielleicht habe ich ein Verständnisproblem, aber unter Prescaler 
verstehe ich den Vorteiler, mit dem man die maximale Watchdogperiode 
einstellen kann, bevor der WD resetet. In meinem Fall wäre das 1:4, 
womit der WDT nach 4x18ms zubeißen würde. Nach einem CLRWDT beißt er 
aber nach 18ms zu, vermute ich.

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da vermutest Du falsch.

In der Realität ist es ja ein Postscaler, also die Überläufe des WDT 
werden nochmal durch den entsprechenden Faktor geteilt.

Wenn der Teiler jetzt nicht gelöscht würde, sammeln sich die 
vergangenen 4ms Zeiten an und der WD beisst zu.

Durch das Löschen beginnt er jedesmal wieder bei 0 und es steht immer 
die volle Zeit zur Vrfügung.

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.