WAITUS/de
(→Remarks) |
(→Remarks) |
||
Line 49: | Line 49: | ||
Zum setzen und Speichern von Registern werden 17 Zyklen benötigt. | Zum setzen und Speichern von Registern werden 17 Zyklen benötigt. | ||
− | <span style="font-family: Arial;"> | + | <span style="font-family: Arial;"></span> |
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. | 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. | ||
Line 60: | Line 60: | ||
Wenn man eine genaue Wartezeit benötigt dann sollte man einen Timer verwenden. | 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 | + | 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. |
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | Die Philosophie von BASCOM ist, dass nur | + | Die Philosophie von BASCOM ist, dass nur Hardware-Ressourcen verwendet werden wenn es nicht anders geht. |
WAITUS wird von einigen Befehlen intern verwendet. | WAITUS wird von einigen Befehlen intern verwendet. | ||
| | ||
− | Die Genauigkeit der Wartezeit hängt von der Taktfrequenz ab. Eine höhere | + | 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. | Bei einer Taktfrequenz von 1 MHz hat man eine Million Zyklen pro Sekunde. Eine NOP-Anweisung benötigt deshalb 1 Mikrosekunde. | ||
Line 81: | Line 81: | ||
| | ||
− | <span style="font-family: 'Courier New';"> | + | <span style="font-family: 'Courier New';">Mit einer Konstanten</span> |
<span style="font-family: 'Courier New';">1us : 2.6 us</span> | <span style="font-family: 'Courier New';">1us : 2.6 us</span> | ||
Line 91: | Line 91: | ||
<span style="font-family: 'Courier New';"> </span> | <span style="font-family: 'Courier New';"> </span> | ||
− | <span style="font-family: 'Courier New';"> | + | <span style="font-family: 'Courier New';">Mit einer Variablen</span> |
<span style="font-family: 'Courier New';">1us : 1.4 us</span> | <span style="font-family: 'Courier New';">1us : 1.4 us</span> |
Revision as of 00:40, 17 February 2013
Action
Hält die Programmausführung für die angegebene Zeit in Mikrosekunden an.
Contents |
Syntax
WAITUS uS
Remarks
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
See also
Example
WAITUS 10 'wait for 10 uS Print "*"
Languages | English • Deutsch |
---|