Forum: Mikrocontroller und Digitale Elektronik Anwendung Watchdog Timer Mega 48 ?


von Heinz (Gast)


Lesenswert?

Hallo,

ich habe da mal ein paar Fragen zum Watchdog Timer.

Wenn ich es richtig verstanden habe, kann ich mit dem Watchdog Timer in 
einstellbaren Zeiträumen einen Interrupt auslösen bzw. wenn ich das 
nicht will, muss ich vorher ein bestimmtes Register beschreiben bzw. 
löschen ?

Ich habe mir Datenblatt und das Beispiel im AVR Tutorial angeschaut, 
blicke aber noch nicht so richtig durch wie ich das zur Anwendung 
bringen kann. Hat vielleicht jemand ein Beispiel (möglichst in C) mit 
dem ich das nachvollziehen kann ?

von Karl H. (kbuchegg)


Lesenswert?

Heinz schrieb:
> Hallo,
>
> ich habe da mal ein paar Fragen zum Watchdog Timer.
>
> Wenn ich es richtig verstanden habe, kann ich mit dem Watchdog Timer in
> einstellbaren Zeiträumen einen Interrupt auslösen bzw. wenn ich das
> nicht will, muss ich vorher ein bestimmtes Register beschreiben bzw.
> löschen ?

Im Prinzip ja. Wobei der Interrupt ein Prozessor-Reset ist.
Nur klingt das jetzt ganz danach, als ob du den Watchdog Timer zu etwas 
misbrauchen willst, wofür er eigentlich nicht gedacht ist.

Der Watchdog Timer ist eigentlich dazu gedacht, den µC aus einem 
fehlerhaften Programm, welches in einer Schleife hängt, gewaltsam 
rauszuholen und dem µC eine Chance zu geben, seine eigentliche Arbeit 
erneut zu beginnen.

Für regelmässige Interrupts sind eigentlich Timer vorgesehen, auch wenn 
man natürlich den Watchdog dazu missbrauchen könnte. Warum willst du 
keinen Timer nehmen?

von spess53 (Gast)


Lesenswert?

Hi

>Im Prinzip ja. Wobei der Interrupt ein Prozessor-Reset ist.
>Nur klingt das jetzt ganz danach, als ob du den Watchdog Timer zu etwas
>misbrauchen willst, wofür er eigentlich nicht gedacht ist.

Der WD des ATMega48 hat 3 Modi:

  -Interrupt
  -Reset
  -Interrupt und anschließend Reset

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Im Prinzip ja. Wobei der Interrupt ein Prozessor-Reset ist.
>>Nur klingt das jetzt ganz danach, als ob du den Watchdog Timer zu etwas
>>misbrauchen willst, wofür er eigentlich nicht gedacht ist.
>
> Der WD des ATMega48 hat 3 Modi:
>
>   -Interrupt

Ah, danke.
Wusste ich nicht, das der 48 das kann.


Ändert aber nichts daran, dass der TO meiner Meinung nach hier einen 
WD-Misbrauch anstrebt.

von spess53 (Gast)


Lesenswert?

Hi

>Wusste ich nicht, das der 48 das kann.

Können eigentlich alle, die einen eigenen WD-Interrupt haben.

>Ändert aber nichts daran, dass der TO meiner Meinung nach hier einen
>WD-Misbrauch anstrebt.

Schon möglich. Ich habe allerdings bisher noch keinen Bedarf für einen 
WD gehabt. Aber andererseits bekommt auch kein Geld zurück, wenn man ihn 
nicht benutzt.

MfG Spess

von Dr. G. Reed (Gast)


Lesenswert?

Ein Grund, den Watchdog-Interrupt zu verwenden , ist :

Man kann den Prozessor in den Power-Down-Modus versetzen und ihn durch 
den WD wieder aufwecken. Das geht mit Timer nicht so einfach.

von Alex W. (Gast)


Lesenswert?

Man kann ihn mit dem Interrupt aus einer Programmschleife holen, und 
dann dies dokumentieren lassen (Uart, SDCard). Nur dumm wenn diese 
Routine fehlerhaft ist und deshalb hängt.

Dafür muss man "Interrupt und Reset" wählen um einen sicheren Neustart 
zu ermöglichen. Soweit ich weis kann man den Neustart verzögern und in 
dieser Zeit eine Aufgabe erledigen (z.B. Doku)

von Heinz (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Im Prinzip ja. Wobei der Interrupt ein Prozessor-Reset ist.
> Nur klingt das jetzt ganz danach, als ob du den Watchdog Timer zu etwas
> misbrauchen willst, wofür er eigentlich nicht gedacht ist.

Meine Problemstellung ist folgende:

Ich werte die Daten einer IR-Fernbedienung aus. Wenn da unterwegs mal 
ein Bit fehlt, bleibt das Programm stehen und da der Interrupt für die 
IR-Daten während der Auswertung ausgeschaltet ist, bleibt es dabei :)

Wenn es dafür elegantere/bessere Lösungsansätze als den WatchDog gibt, 
bin ich ganz Ohr.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.