Logo

Timerbasiertes Warten (ohne Delay-Schleifen)

Häufig besteht eine Aufgabenstellung darin, zu warten bis eine bestimmte Zeit abgelaufen ist, bevor die nächste Programmanweisung ausgeführt wird.

Anstatt Delay-Routinen zu verwenden, kann das Warten auch timerbasiert erfolgen. Die CPU kann so besser ausgelastet werden. Hierzu sind mehrere Ansätze möglich.

In jedem Fall darf man nicht vergessen, den Timer vor Beginn der Zeitmessung zurückzusetzen.

Auch ein (ungewollter) Timer-Overflow kann Wartezeiten beeinflussen.

Ansatz 1: Die leere while-Schleife

Formel

Nachteil: Das Programm bleibt so lange in der while-Schleife "gefangen" bis die Zeit abgelaufen ist.

Ansatz 2: Bedingte Verzweigung mit if

Formel

Vorteil: Die CPU wird besser ausgenutzt.

Nachteil: Der Main-Loop darf nicht zu lange dauern. Sonst können Zählerstände verpasst werden.