Hallo Max,

Zitat Zitat von PCF8574P
... muss nur einen Servo ... wenn ich den Servo auf Mittelstellung bringen will ...
Na ja, so ähnlich. Schau doch mal ins Wiki wegen der 5ervos => nur eines dieser blauen Wörter " Servo " anklicken *gggg*. Dort ist auch eine Skizze zum Signal (Rampendauer 1 ms bis 2 ms) und dann der "Rest" auf low. ACHTUNG: die Skizze hat einen Fehler. Definitionsgemäß ist der Abstand von zwei aufeinanderfolgenden steigenden Flanken 2 ms - die Skizze suggeriert aber, dass die Pause zwischen 2 Rampen 2 ms sei. Die meisten 5ervos nehmen es mit der Genauigkeit der Zyklusdauer nicht sooo eng. Die laufen auch meist mit weniger und mehr Zykluszeit - ungefähr unter 1,8 ms bis über 2,2 ms. Aber die Zykluszeit sollte konstant sein (daher ist die Skizze irreführend).

Ist die Rampe 5% der Zyklusdauer (5% von 20 ms sind 1 ms) dann ist der eine nominelle Maximalausschlag gemeint, 10 % (also 2 ms) dann läuft der 5ervo auf den anderen nominellen Maximalausschlag. "Nominell" nenn ich das deshalb hier, weil das NICHT die Endausschläge sind - die meist mechanische Anschläge haben.

Du musst Dir also (blos) eine Hard- oder Soft-Ware-PwM schreiben, mit der Du die genannte Zyklusdauer realisierst. Je höher die Auflösung der PwM zwischen 5 % und 10 % der Zyklusdauer ist, umso feiner kann der 5ervo gestellt werden - aber abhängig natürlich von seiner internen elektrischen und mechanischen Güte/Genauigkeit.

Zitat Zitat von The Man
... von Kommazahlen ... bei µC der Leistungsklasse die hier in der Regel benutzt wird abstand nehmen ...
Das verstehe ich nun überhaupt nicht. Wieso sollte ich denn den 5ervo nicht auf 12,5 % seines Gesamtausschlages stellen können? Das wäre dann z.B. eine PwM mit einer Aufteilung auf 160 Schritte in 2 ms und davon wäre die Rampe 9 Schritte lang aktiv.

Und was um alles in der Welt sollte es heißen, dass man Millisekunden "bei µC der Leistungsklasse die hier in der Regel benutzt wird" NICHT in Kommastellen messen kann. Mein mega168/20 MHz schafft locker 0,05 ms zu messen - und dabei kann die CPU nebenher noch ne ganze Menge anderer Dinge machen.

@Max: der Rat mit den delay´s ist ein möglicher, aber kein guter Rat. 5ervos werden i.A. mit HardwarePWMs oder mit interruptgetriebenen PwM´s gefahren. Dazu ein Delay nehmen - wozu hab ich nen µC mit ein paar Millionen Zyklen, wenn der vorwiegend nichts anderes tun soll als zu rechnen:

Anfang
if { delaycounter Null go to Ende } (dies ist um alles in der Welt KEIN C *gggg*)
Ende

Sieht doch irgendwie aus nach nutzlosem im-Kreis-hecheln.