Hi edge,
auf den ersten Blick fallen mir die Startwerte auf:
a -> +90°
b -> -120°
c -> -30°
Wenn Du nur eines ändern willst, solltest Du bei b auf 203 also -150°, dann hast du auch ein gleichmäßiges Drehfeld.
Bei der Abfrage > 127 kommt mir Deine Anweisung auch etwas seltsam vor. Warum adierst Du auf den Sinus noch 127? Es ist doch noch die gleiche Halbwelle, nur eben absteigend. Ich hätte dann als Index [256 - aktuelle Pos] - so läufst Du einfach den Viertel-Sinus wieder nach vorn. ...oder Du rechnest [128 - (aktuelle Pos & 0x7F)].
... und die Abfragen kannst Du noch beschleunigen statt "... > 127" lieber "... & 0x80) das ist dann nur ein Bitvergleich.
Ich zeichne mir so verläufe immer auf, dann kann man es leicht sehen.
Sind denn die Verläufe generell Sinusförmig?
Grüße,
Olli