21.09.2001

Warteschleifen

kitCON 541 mit Keil C51 programmiert

 

integer:

Zählen von 0 bis kleiner...[1]

0 - 4,5 Mikrosekunden

1 - 5,5 Mikrosekunden

2 - 9,5 Mikrosekunden

3 - 13,5 Mikrosekunden

4 - 17,5 Mikrosekunden

5 - 21,5 Mikrosekunden

 

char:

Zählen von 0 bis kleiner...[2]

0 - 3,5 Mikrosekunden

1 - 3 Mikrosekunden

2 - 5 Mikrosekunden

3 - 7 Mikrosekunden

4 - 9 Mimosekunden

5 - 11 Mikrosekunden

 

Bei „Zählen von 0 bis kleiner 0“ handelt es sich um eine Besonderheit. Alles darüber kann man aber mit folgender Formel erschlagen:

 

integer: Zeit in Mikrosekunden = 4*Zähler+1,5

char: Zeit in Mikrosekunden = 2*Zähler+1

 

Wenn die Zeit vorgegeben ist, man aber die Mikrosekunden benötigt, kann die Formel umgestellt verwenden:

 

integer: Zähler = (Microsekunden-1,5)/4

char: Zähler = (Microsekunden-1)/2

 

Weitere Verzögerungsmöglichkeiten:

Register setzen: 0,5 Mikrosekunden

char auf 0 setzen: 0,5 Mikrosekunden

char auf 1 setzen: 1 Mikrosekunden

int auf 0 setzen: 1 Mikrosekunden

int auf 1 setzen: 1,5 Mikrosekunden

 

Der Interrupt muss ausgeschalten sein (EA = 0)!

 

Bei integer: Falls 255<Zähler: Zähler = Mikrosekunden/3, sonst Zeiten zu klein!



[1] z.B. Zählen von 0 bis kleiner 3:

int i;

for (i=0; i<3; i++);

 

[2] z.B. Zählen von 0 bis kleiner 3:

char c;

for (c=0; c<3; c++);