Da aber auf keinen Fall Zählschritte verloren gehen dürfen, wurden folgende Eingabebehandlungen und Zeit abhängige bzw. Zeit gesteuerte Mechanismen festgelegt:

  1. Unkritische Warteschleifen, in denen keine unerwarteten Zustände eintreten können, werden als einfache Software-Loops (z.B. Tastatur-Wiederholrate bei niedergedrückten Tasten) ausgeführt. Dies beeinträchtigt nicht die Interrupt-Behandlung, verzögert aber die abhängigen Zyklen in vorhersehbarer weise.
  2. Bei einer Tastatureingabe werden von einer minimalen ISR die notwendigen Informationen zur späteren Auswertung der Tastaturbetätigung in Variablen abgelegt.
  3. Timer gesteuerte Interrupts (über den 8-Bit Timer/Counter0 ausgelöst) werden als ,,Pseudo-Scheduler'' zur Steuerung zeitabhängiger Ereignisse verwendet.
  4. Das Zählen der Winkelschritte soll unabhängig passieren, sodass nicht einmal etwaige auftretende Interrupts dies beeinflussen können.
  5. Das Anfahren einer Endposition wird im Pollingmodus durchgeführt, was auf Grund der geringen Dreh-Geschwindigkeit zu keinen Verlusten führen kann (siehe 7.8.1.3).
Diese Mechanismen werden nun in den folgenden Abschnitten im Einzelnen beschrieben.

gerhard.reithofer@tech-edv.co.at