BASCOM Watchdog

1
[email protected] 1 AVR-Mikrocontroller in BASCOM programmieren Der Watchdog Timer Machmal ist es wichtig zu erkennen wenn der Controller „hängen bleibt“, und ihn dann neu zu starten damit er seine Aufgabe erfüllen kann. Der Watchdog muß in einem bestimmten Rhythmus rückgesetzt werden. Passiert dies nicht in dem angegebenen Zeitintervall, wird ein Reset des Controllers ausgelöst. Im Beispiel kommuniziert ein Controller als Master mit einer Mess-Station, er fragt ihre Daten ab. Antwortet die Station nicht oder falsch, so würde das Programm des Masters endlos warten. Dies wird mit dem Watchdog Timer verhindert. $regfile = "8535def.dat" $crystal = 4000000 Config Watchdog = 2048 'Timeout = 2 Sekunden Start Watchdog Do .... 'Command to station Print #1 , "*"; Waitms 10 'Read 7 pieces of data terminated by CR For I = 1 To 7: Input #2 , S(i): Next I ..... Reset Watchdog Loop Mit CONFIG WATCHDOG wird das Zeitintervall eingestellt, in dem der Watchdog spätestens zurückgesetzt werden muß. Anschliessend wird er mit START WATCHDOG gestartet. In der Schleife des Hauptprogramms kommt regelmäßig der RESET WATCHDOG – Befehl. Wenn das Programm hängen bleibt, kommt dieser Befehl nicht rechtzeitig und der Controller wird rückgesetzt. Er startet dann ganz von neuem.

description

bas

Transcript of BASCOM Watchdog

  • [email protected] 1

    AVR-Mikrocontroller in BASCOM programmieren

    Der Watchdog TimerMachmal ist es wichtig zu erkennen wenn der Controller hngen bleibt, und ihn dann neu zu starten damit er seine Aufgabe erfllen kann.

    Der Watchdog mu in einem bestimmten Rhythmus rckgesetzt werden.

    Passiert dies nicht in dem angegebenen Zeitintervall, wird ein Reset des Controllers ausgelst.

    Im Beispiel kommuniziert ein Controller als Master mit einer Mess-Station, er fragt ihre Daten ab. Antwortet die Station nicht oder falsch, so wrde das Programm des Masters endlos warten. Dies wird mit dem Watchdog Timer verhindert.

    $regfile = "8535def.dat"$crystal = 4000000

    Config Watchdog = 2048 'Timeout = 2 SekundenStart Watchdog

    Do ....

    'Command to station Print #1 , "*";

    Waitms 10

    'Read 7 pieces of data terminated by CR For I = 1 To 7: Input #2 , S(i): Next I

    .....

    Reset WatchdogLoop

    Mit CONFIG WATCHDOG wird das Zeitintervall eingestellt, in dem der Watchdog sptestens zurckgesetzt werden mu. Anschliessend wird er mit START WATCHDOG gestartet.

    In der Schleife des Hauptprogramms kommt regelmig der RESET WATCHDOG Befehl.

    Wenn das Programm hngen bleibt, kommt dieser Befehl nicht rechtzeitig und der Controller wird rckgesetzt. Er startet dann ganz von neuem.

    AVR-Mikrocontroller in BASCOM programmierenMachmal ist es wichtig zu erkennen wenn der Controller hngen bleibt, und ihn dann neu zu starten damit er seine Aufgabe erfllen kann.Der Watchdog mu in einem bestimmten Rhythmus rckgesetzt werden.Passiert dies nicht in dem angegebenen Zeitintervall, wird ein Reset des Controllers ausgelst.Im Beispiel kommuniziert ein Controller als Master mit einer Mess-Station, er fragt ihre Daten ab. Antwortet die Station nicht oder falsch, so wrde das Programm des Masters endlos warten. Dies wird mit dem Watchdog Timer verhindert.Mit CONFIG WATCHDOG wird das Zeitintervall eingestellt, in dem der Watchdog sptestens zurckgesetzt werden mu. Anschliessend wird er mit START WATCHDOG gestartet.In der Schleife des Hauptprogramms kommt regelmig der RESET WATCHDOG Befehl.Wenn das Programm hngen bleibt, kommt dieser Befehl nicht rechtzeitig und der Controller wird rckgesetzt. Er startet dann ganz von neuem.