Dann würde ich vielleicht mal versuchen, eine Software-PWM zu integrieren. Da gibt es eigentlich unterschiedliche Konzepte, ich wollte das mal so probieren, dass jedes Servo nacheinander seinen Impuls bekommt (bei 20ms Periodendauer und max 2,5ms Impuls könnte man also 8 Servos ansteuern) und der µC hat dann eigentlich immer min. 0,5 ms Zeit, um irgendwas zu rechnen, da die Impulslänge zwischen 0,5 und 2,5ms angenommen wird. Ich geh hier einfach mal von gemoddeten Servos aus, die über ihre 180° hinaus bewegt werden können. Dafür bräuchte man dann allerdings eine rel. lange Interrupt-Routine, die dann immer den richtigen Wert an den aktuellen Servo übermitteln muss.
Ablauf wäre also: Pin für Servo 0 auf High, warte Impulslänge, wieder low setzen, rest bis zum ende der 2,5ms warten
und dann wieder von vorn mit dem nächsten Pin, bis alle durch sind.
Zwischendurch müsste der µC dann entweder die neuen Impulszeiten berechnen oder vom PC übermittelt bekommen.
Woanders hatte auch jemand etwas gepostet, dass er sich die Impulszeiten der Servos vorher berechnet und in eine Liste schreibt, die nur noch abgerufen werden muss. Dann würden die Servos auch halbwegs synchron laufen. Allerdings sehe ich bei diesem Prinzip noch nicht ganz durch, müsstest ihn wohl selbst anschreiben. Ich mag ja eigentlich lieber flexible Lösungen, als feste Tabellen.
Lesezeichen