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 ?
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?
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
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.
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
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.
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.