WAITUS/de
Inhaltsverzeichnis |
Action
Hält die Programmausführung für die angegebene Zeit in Mikrosekunden an.
Syntax
WAITUS uS
Anmerkungen
uS |
Wartezeit in Mikrosekunden (1-65535).
uS muss eine Konstante sein. Keine Variable. Ab Version 1.12.x.x kann man auch Variable benutzen. |
Ein genaues Timing ist mit WAITUS nicht möglich. Für genaue Zeiten sollte ein Timer verwendet werden.
Außerdem können Interrupts die Wartezeit verlängern.
Die minimale Wartezeit wird durch die Taktfrequenz bestimmt.
Zum setzen und Speichern von Registern werden 17 Zyklen benötigt.
Wenn als Parameter 1 geschrieben wird dann ist die minimale Wartezeit 21 uS. In diesem Fall ist es sinnvoller NOP zu schreiben wodurch ein Zyklus verbraucht wird.
Bei 4 MHz ist die minimale Wartezeit 5 uS. Ein WAITUS 3 ergibt ebenso 5 uS Wartezeit.
Bei größeren Werten werden die Wartezeiten genauer.
Wenn man eine genaue Wartezeit benötigt dann sollte man einen Timer verwenden.
Setzen Sie den Timer auf einen Startwert und pollen Sie bis das Overflow-Flag gesetzt ist. Der Nachteil ist, dass der Timer während dieser Hardware-Verzögerung nicht für andere Aufgaben benutzt werden kann.
Die Philosophie von BASCOM ist, dass nur Hardware-Ressourcen verwendet werden wenn es nicht anders geht.
WAITUS wird von einigen Befehlen intern verwendet.
Die Genauigkeit der Wartezeit hängt von der Taktfrequenz ab. Eine höhere Taktfrequenz ergibt eine bessere Genauigkeit.
Bei einer Taktfrequenz von 1 MHz hat man eine Million Zyklen pro Sekunde. Eine NOP-Anweisung benötigt deshalb 1 Mikrosekunde.
Wenn man Register laden und Unterprogramme aufrufen muss dann benötigt man mehr Zyklen.
Bei 8 MHz wurden folgende Zeiten gemessen:
Mit einer Konstanten
1us : 2.6 us
10us : 11.5 us
25us : 26.3 us
Mit einer Variablen
1us : 1.4 us
10us : 10.2 us
25us : 25.0 us
Siehe auch
Beispiel
WAITUS 10 'wait for 10 uS Print "*"
Languages | English • Deutsch |
---|