Zitat Zitat von DasG Beitrag anzeigen
Die Hauptschleife ruft eine Sub auf, welche unter Umständen lange dauern kann. Falls alles läuft wie geplant, beendet die innerhalb einer gewissen Zeit und alles geht weiter wie gewohnt.
Sollte es aber länger dauern als erlaubt, dann wird der Timer0 Overflow aufgerufen.
Das ist der klassische Fall einer Timeout-Sicherung: Warten auf ein äusseres Signal, das zu spät oder vielleicht auch nie kommt; der Timeout leitet das Programm weg vom operativen Ziel hin zu einer Störbehandlungsfunktion.

Der Timeout wird wie eine Eieruhr immer dann frisch "aufgezogen", wenn eine potentiell erfolglose Wartephase beginnt. Das Warten auf das operative Signal und die Prüfung auf Timeout werden ständig nacheinander ausgeführt. Innerhalb dieser "aktives-warten"-Schleife wird dann je nach Ereignis in die Prozessfunktion oder die Störbehandlung verzweigt.

Analog zu einer festen Timeoutzeit kann auch ein externes Störmeldungssignal diese Verzweigung auslösen; der Mechanismus bleibt gleich.