Servus

Wiedermal ich mit einer eigentlich einfachen Frage. Ich möchte hier klare Antworten sodass man das ganze dann in das Wiki stellen kann. Grund: Weder bei µC.net noch hier findet sich ein solcher Artikel und ich denke für den ein oder anderen könnte das Interessant sein.

Nehmen wir mal eine verschachtelte Schleife aus 3 Zählern. Dann ist die Gesamtzeit am Ende, wenn ich mich nich Täusche, die dritte Wurzel aus den Zylklen mal der Taktzeit des Systems (1/Systemfreq.). Richtig/Falsch?

Bei dieser Schleife
Code:
delay:								; Warte Schleife, Verschachteltes
	ldi			zaehl3,0x8			; Incrementieren von 3 Zaehlern
del2:
	ldi			zaehl1,0xFF
del:
	ldi			zaehl2,0xFF
del1:
	dec			zaehl2
	brne		del1
	dec			zaehl1
	brne		del
	dec			zaehl3
	brne		del2
	ret
aus dem Musterprogramm kommme ich auf
Code:
0x08 = 8
FF = 255
FF = 255
=> Cycles = 8*255*255 = 520200
           _______
=> t=³-\520200 * 1/4MHz = 20,1µs
Problem: Ich sitz hier vorm PC wie ein Ochse und es tut sich, genua, nix. Er zählt die schleife und zählt und zählt und ... ja wie der Duracell-Hase ...

Also, stimmt die Berechnung und die Simulation schlägt mir ein schnippchen oder steh ich auf der Leitung?

BTW: Ich möchte das Tool aus dem Internet nicht nutzen! Diese Warteschleifen sind fürn Po, wofür gibts Timer, es geht mir nur um die Berechnung.

Grüße