Hallo Feratu,

Du könntest einen Timer-IRQ laufen lassen mit der notwendigen Auflösung der PWM, in der eine Varible hochgezählt wird.

Dann kannst Du im Hauptprogramm am Anfang alle Ausgänge setzen und dann bei jedem neuen Wert der Variablen die einzelnen Kanäle prüfen ob diese wieder abgeschaltet werden müßen.

Servos werden normalerweise alle 20ms mit einem Puls von 1..2ms angesteuert. Um eine Auflösung von 100 Schritten zu erreichen muß dein Timer-IRQ mit 1ms/100 = 10µs laufen, in der Zeit kann der µC ca. 150 Befehle verarbeiten.

Da nach 2ms alle Ausgänge wieder null sind hätte der µC die restlichen 18ms nichts zu tun, diese kann man nutzen um wieder so ein 2ms Paket einzuschieben.

So kann man schon eine ganze Reihe von Servos steuern. Aber die Soll-Daten müßen ja auch irgendwie in den Controller, daher sollte man dazu noch was Luft lassen.

Grüße


Grüße