Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

(Siehe auch)
Zeile 6: Zeile 6:
  
 
Ein Watchdogtimer findet man in den meisten [[Atmel]] [[AVR]]-Controllern. Dort kann dieser auch per Software deaktiviert und aktiviert werden.
 
Ein Watchdogtimer findet man in den meisten [[Atmel]] [[AVR]]-Controllern. Dort kann dieser auch per Software deaktiviert und aktiviert werden.
 +
 +
Hier ein Beispiel zur Programmierung des Watchdogs:
 +
 +
'****************************************************
 +
'*              Watchdog - Test                    *
 +
'*                                                  *
 +
'* Es soll hier das Prinzip des Watchdogs gezeigt  *
 +
'* werden.                                          *
 +
'****************************************************
 +
 +
Config Watchdog = 2048                                      'Führe nach 2048 mSec. eine Reset durch
 +
Dim I As Word
 +
 +
I = 1
 +
While I > 0                                                ' Endlos-Schleife
 +
  Start Watchdog                                          ' Starte den Watchdog
 +
  ' Es folgt der eigentliche Programmcode
 +
  Print I
 +
  Incr I
 +
  'Waitms 3000
 +
  ' Wird die Zeile "Waitms 3000" auskommentiert, soll 3000mSec gewartet werden. Der Watchdog führt aber
 +
  ' vorher und zwar nach 2048 mSec..ein Reset durch.
 +
  Stop Watchdog                                            ' Stoppe den Watchdog
 +
  ' Sollte es zu einem Absturz kommen, kann der Watchdog nicht gestoppt werden und es kommt nach
 +
  ' 2024 mSec. zum Reset
 +
Wend
 +
End
  
 
==Siehe auch==
 
==Siehe auch==

Version vom 5. Juni 2007, 15:09 Uhr

Als Watchdog (Wachhund) bezeichnet man die sogenannte "Watchdogtimer-Schaltung" (WDT) innerhalb eines Microcontrollers, die dafür sorgt, daß der Controller bei einem undefinierten Zustand ein RESET ausführt.

Mit dem Starten des Watchdog-Timers läuft ein von der Systemclock getakteter Hardware-Zähler ab einem programmierbaren Zählerstand los. Kommt es nach der gewählten Zeit zu einem Überlauf, so wird automatisch ein RESET-Signal für den Controller ausgelöst und somit die Hardware initialisiert und das im Controller abgelegte Programm neu gestartet.

Um zu verhindern, daß der COntroller sich ständig neu startet, muß das Programm immer rechtzeitig den Watchdogtimers zurücksetzen. Dies kann an mehreren Stellen im üblichen Programmablauf geschehen. Falls also das Programm aus irgendwelchen Gründen nicht mehr planmäßig abläuft oder auch stehenbleibt (z.B. wegen Endlosschleife), wird in den meisten Fällen der Watchdogtimer nicht mehr zurückgesetzt. Dadurch wird durch den Reset zumindest der Controller wieder in einen definierten Zustand gebracht.

Ein Watchdogtimer findet man in den meisten Atmel AVR-Controllern. Dort kann dieser auch per Software deaktiviert und aktiviert werden.

Hier ein Beispiel zur Programmierung des Watchdogs:

'**************************************************** '* Watchdog - Test * '* * '* Es soll hier das Prinzip des Watchdogs gezeigt * '* werden. * '****************************************************

Config Watchdog = 2048 'Führe nach 2048 mSec. eine Reset durch Dim I As Word

I = 1 While I > 0 ' Endlos-Schleife

  Start Watchdog                                           ' Starte den Watchdog
  ' Es folgt der eigentliche Programmcode
  Print I
  Incr I
  'Waitms 3000
  ' Wird die Zeile "Waitms 3000" auskommentiert, soll 3000mSec gewartet werden. Der Watchdog führt aber
  ' vorher und zwar nach 2048 mSec..ein Reset durch.
  Stop Watchdog                                            ' Stoppe den Watchdog
  ' Sollte es zu einem Absturz kommen, kann der Watchdog nicht gestoppt werden und es kommt nach
  ' 2024 mSec. zum Reset

Wend End

Siehe auch


LiFePO4 Speicher Test