WAITUS/de

From MCS Wiki AVR
< WAITUS(Difference between revisions)
Jump to: navigation, search
(Created page with "= <span class="f_Header">Action</span> = Suspends program execution for a given time in uS. <span style="font-family: Arial;"> </span> <span style="font-family: Arial;...")
 
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== (**COPIED FROM ENGLISH PAGE**) === <span class="f_Header">Action</span> =
+
= <span class="f_Header">Action</span> =
  
Suspends program execution for a given time in uS.
+
Hält die Programmausführung für die angegebene Zeit in Mikrosekunden an.  
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Line 17: Line 17:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">Remarks</span> =
+
= <span class="f_Header">Anmerkungen</span> =
 
<div style="padding: 0px; margin: 0px 0px 0px 4px;">
 
<div style="padding: 0px; margin: 0px 0px 0px 4px;">
 
{| width="539" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;"
 
{| width="539" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;"
 
|- style="vertical-align: top;"
 
|- style="vertical-align: top;"
 
| valign="top" width="15%" style="width: 77px; border: 1px solid rgb(0, 0, 0);" |  
 
| valign="top" width="15%" style="width: 77px; border: 1px solid rgb(0, 0, 0);" |  
US
+
uS
  
 
| valign="top" width="100%" style="width: 453px; border: 1px solid rgb(0, 0, 0);" |  
 
| valign="top" width="100%" style="width: 453px; border: 1px solid rgb(0, 0, 0);" |  
The number of microseconds to wait. (1-65535)
+
Wartezeit in Mikrosekunden (1-65535).
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
This must be a constant. Not a variable!
+
uS muss eine Konstante sein. Keine Variable.
  
<span style="font-weight: bold;">In version 1.12.x.x and higher you can use a variable as well.</span>
+
<span style="font-weight: bold;">Ab Version 1.12.x.x kann man auch Variable benutzen.</span>
  
 
|}
 
|}
Line 37: Line 37:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
No accurate timing is possible with this command. For accurate timing you can best use a timer.
+
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.  
  
In addition, the use of interrupts can slow down this routine.
 
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The minimum delay possible is determined by the used frequency.
+
Die minimale Wartezeit wird durch die Taktfrequenz bestimmt.
  
The number of cycles that are needed to set and save registers is 17.
+
Zum setzen und Speichern von Registern werden 17 Zyklen benötigt.
  
<span style="font-family: Arial;">&nbsp;</span>
+
<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.
  
When the loop is set to 1, the minimum delay is 21 uS. In this case you can better use a NOP that generates 1 clock cycle delay.
+
Bei 4 MHz ist die minimale Wartezeit 5 uS. Ein WAITUS 3 ergibt ebenso 5 uS Wartezeit.
  
At 4 MHz the minimum delay is 5 uS. So a waitus 3 will also generate 5 uS delay.
+
Bei größeren Werten werden die Wartezeiten genauer.
 
+
Above these values the delay will become accurate.
+
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
When you really need an accurate delay you should use a timer.
+
Wenn man eine genaue Wartezeit benötigt dann sollte man einen Timer verwenden.
  
Set the timer to a value and poll until the overflow flag is set. The disadvantage is that you can not use the timer for other tasks during this hardware delay.
+
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;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The philosophy behind BASCOM is that it should not use hardware resources unless there is no other way to accomplish a task.
+
Die Philosophie von BASCOM ist, dass nur Hardware-Ressourcen verwendet werden wenn es nicht anders geht.
 
+
The WAITUS is used internal by some statements. It was added to the BASCOM statements but it does NOT accept a variable. Only a constant is accepted.
+
  
 +
WAITUS wird von einigen Befehlen intern verwendet.
 
&nbsp;
 
&nbsp;
  
When you use a variable for the delay, the accuracy will depend on the value of the oscillator. A higher oscillator value will result in a better accuracy.
+
Die Genauigkeit der Wartezeit hängt von der Taktfrequenz ab. Eine höhere Taktfrequenz ergibt eine bessere Genauigkeit.
  
When you clock the micro with 1 MHz, it means that you have a million cycles per second. A NOP instructions takes 1 cycle and will thus delay for 1 us.
+
Bei einer Taktfrequenz von 1 MHz hat man eine Million Zyklen pro Sekunde. Eine NOP-Anweisung benötigt deshalb 1 Mikrosekunde.
  
If you must load registers, and call a subroutine, it means you need more cycles.
+
Wenn man Register laden und Unterprogramme aufrufen muss dann benötigt man mehr Zyklen.
  
 
&nbsp;
 
&nbsp;
  
At 8 Mhz the following results were measured:
+
Bei 8 MHz wurden folgende Zeiten gemessen:
  
 
&nbsp;
 
&nbsp;
  
<span style="font-family: 'Courier New';">With a constant</span>
+
<span style="font-family: 'Courier New';">Mit einer Konstanten</span>
  
 
<span style="font-family: 'Courier New';">1us &nbsp;: &nbsp; 2.6 us</span>
 
<span style="font-family: 'Courier New';">1us &nbsp;: &nbsp; 2.6 us</span>
Line 91: Line 91:
 
<span style="font-family: 'Courier New';">&nbsp;</span>
 
<span style="font-family: 'Courier New';">&nbsp;</span>
  
<span style="font-family: 'Courier New';">With a variable</span>
+
<span style="font-family: 'Courier New';">Mit einer Variablen</span>
  
 
<span style="font-family: 'Courier New';">1us &nbsp;: &nbsp; 1.4 us</span>
 
<span style="font-family: 'Courier New';">1us &nbsp;: &nbsp; 1.4 us</span>
Line 103: Line 103:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">See also</span> =
+
= <span class="f_Header">Siehe auch</span> =
  
 
[[DELAY]]&nbsp;,&nbsp;[[WAIT]]&nbsp;,&nbsp;[[WAITMS]]
 
[[DELAY]]&nbsp;,&nbsp;[[WAIT]]&nbsp;,&nbsp;[[WAITMS]]
Line 111: Line 111:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">Example</span> =
+
= <span class="f_Header">Beispiel</span> =
  
 
<br/><source lang="bascomavr">
 
<br/><source lang="bascomavr">

Latest revision as of 01:11, 17 February 2013

Contents

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

DELAY , WAIT , WAITMS

 

 

Beispiel


WAITUS 10 'wait for 10 uS
Print "*"

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language