Hi,

Im "if" Zweig wird getestet, ob "__count==0" und gegebenenfalls auf den nächsten Befehl gesprungen. Dieser Zweig wird übrigens unter der Dezember 2007 Version von WINAVR wegoptimiert (wenn nicht "-O0")!

Im "else"-Zweig wird von "__count" wird so oft "1" subtrahiert (sbiw="subtract immediate from word"), bis "__count" Null ist (d.h. die "branch not equal" {Sprung rückwärts zum Label "1"} Anweisung wird ausgeführt, wenn das Ergebnis der Subtraktion ungleich Null ist). Ist Null erreicht, geht der Programmzähler einfach auf die nächste Zeile, die dem Inline Code folgt.

In C (ohne Optimierung, sonst würde diese Zeile wahrscheinlich einfach verschwinden!):
Code:
while (--__count);
Je nach F_CPU und nötiger Wartezeit würde ich Dir eher zu "_delay_us(..)" aus "util/delay.h" raten (in der Klammer sollte ein Konstante stehen und Du musst die Optimierung eingeschaltet haben).

Gruß

Fred