@for_ro: Danke, werd das mal probieren.

@HeXPloreR: Das Programm soll Schrittmotoren steuern. Der Timer ist aus, weil bei jedem timer überlauf ein schritt gegangen werden soll, aber natürlich erst, wenn ich entsprechende daten übergeben hab. Im Timer steht nichts drin, weil das Programm noch nicht fertig ist .
Die LED's funktionieren so, wie ich die hier anspreche, das hab ich aus dem Code jopiert, den ich vorher auf dem Atmega hatte.
Das Schrittarray entält die Informationen welche Pinne aktiv sein müssen, um den Motor jeweils einen halbschritt weiter gehen zu lassen.

Die Idee ist, das ich Ein Befehl gebe, dass alles, was als nächstes kommt in ein array geschrieben wird. Das was dann ins array geschrieben wird sind je nach wert entweder angaben, wie weit nach +x -x +y oder -y sich der Motor bewegen soll, oder andere komandos, wie "Laser einschalten" (ist für einen Laserplotter).
Nach dem passenden Befehl sendet der mir, was im array steht, damit ich übertragungsfehler ausschließen kann und dann sende ich den Befehl zum starten.

Da ich eh keine 32000 Schritte in eine richtung (+ oder -) gehen brauche, nutze ich das Ende des Integer berreichs für zusätzliche funktionen, die den Laser zu steuern und anderes. Und da ich eh viel mit diesen Integer Werten als Befehl arbeite, nutze ich diese ganz einfach auch am Anfang um das befüllen des arrays zu steuern.

Was stört dich an meiner While Schleife, hätest du da einen besseren Vorschag?

Danke für's Interesse