Lesbarer wird das, wenn Du das ganze in als code formatierst.
Die while-Schleife beim Setzen von DDRD muss weg.
Was soll die Zeile
Code:
PORTD = ((lngUSE*2-1) % lngCount);
den bewirken? Aus lngUSE wird eine ungerade Zahl gemacht und dann Modulo lngCount (der zu dem Zeitpunkt den Wert 255 hat) gerechnet, was bei zu einem Wert zwischen 0 und 0xff führt. Das kannst Du billiger mit
Code:
PORTD = ((lngUSE*2-1) & 0xff);
haben.
Sonst fällt mir nix auf. Vielleicht noch eine generelle Anmerkung: Die Variablen könnten etwas aussagekräftiger benannt sein.
Ich persönlich finde im Übrigen Ungarische Notation wenig hilfreich, aber das ist jedem selbst überlassen. Wenn, dann sollte sie aber in der Form verwendet werden, dass der Typ der Variablen nachgestellt ist (also cntLng statt lngCnt).
Lesezeichen