Hi Knipser,

eine Macke ist in den IF Abfragen:

if (t==1 && z==servo1)

Das muss

if ((t==1) && (z==servo1)) heißen.

Die einzelnen Statements müssen für sich in Klammern stehen, damit daraus eine eigenständige Aussage wird.

Es währe auch gut, wenn du ein paar mehr Worte zu deinem Programm verlieren würdest.
So wie ich das sehe, schaltest du den Kanal für den nächsten Servo ein, wenn du den vorherigen ausschaltest. Das hat natürlich zur Folge, dass sich die Einschaltpunkte aller Servos außer des ersten komultativ (sorry für das Wort^^) in Abhängigkeit ALLER vorrangegangenen Pulsdauern verändern.
Das heißt, du musst nach jeden Servo noch eine Abfrage machen, ob die 2ms voll sind.

Und noch was. Bau die math.h nur ein, wenn es sich nicht verhindern lässt. Mit den Controlern, die wir hier benutzten, frißt das richtig Resourcen. Letztendlich bedeutet alles was über Strichrechnung hinausgeht einen erheblichen Aufwand für die kleinen Dinger. Deswegen sein auch sehr vorsichtig mit Kommarechnung. Aber das währe ein eigener Thread.

mfg,
The Man