Anwendung Watchdog Timer Mega 48 ?

Gast #2695627
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 ?
#2695633
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?
Gast #2695642
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
#2695648
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.
Gast #2695672
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
Gast #2695691
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)
Gast #2695864
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren