Gast
#504397
Hallo,
ich möchte mittels Assembler eine Verzögerung einbauen. Habe aus dem LCD
Beispiel aus dem Tutorial schonmal folgendes gefunden:
.ifndef XTAL
.equ XTAL = 4000000
.endif
delay50us: ; 50us Pause
ldi temp1, ( XTAL * 50 / 3 ) / 1000000
delay50us_:
dec temp1
brne delay50us_
ret
Wofür sind die drei ersten Zeilen eigentlich gut ?? In XTAL steht
anscheind schonmal die Frequenz von 4Mhz drin, später wird dann etwas in
temp1 geladen, aber woraus setzt sich das genau zusammen, bzw. was muss
ich für die 50us rechnen ??
Also bei 4Mhz dauert ein Taktzyklus ja 250ns, dh. ich muss bei einer
Verzögerung von 50us 200 Taktzyklen abarbeiten !?
Ich hoffe einer kann mir das jetzt noch eindeutig erklären,
Danke,
Christian R.