Beim PID Code kommt mir die Berechnung des Ableitungsteils komisch vor: als alter Wert für die Differenzbildung wird bereits die Differenz gespeichert. Ich hätte da erwartet das man sich den Wert ohne die Differenzbildung merkt. So wie ich es kenne wird auch einfach die alte Regelabweichung gemerkt, also noch vor der Multiplikation mit Kd - das ist aber vielleicht auch nur Geschmackssache.

So ein PID Regler ist nicht ganz einfach einzustellen. Der erste Test wäre erstmal nur als Proportionalregler, also Ki = Kd = 0.

Beim Code für den Servo Controller (Tiny2313) kommt mir die ISR komisch vor: die Kanalnummer wird in den IF Abfragen erhöht. Wenn man mit Kanalnr 0 anfängt paßt dann erst die NR 0 und dann auch noch die 1 usw. Durch die Kanalnr. ist eigentlich auch der Zustand der Ports festgelegt und muss nicht extra Abgefragt werden. Also immer einen IO-Pin setzen und einen IO-Pin Löschen.