Hallo, ich bin noch lange kein Profi, aber auf dem Weg dahin ;) Es geht um den Artikel http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung#Signalerzeugung_f.C3.BCr_1_Servo_mittels_Timer_.28C.29 Frage: Wäre es nicht einfacher z.B. nicht invertierendes Fast PWM zu nutzen, und den TOP Wert mit ICR1 vorzugeben, so das man immer noch auf eine Periodendauer von 20ms hin bekommt? Der Weg zur Frage: Im Artikel wird ein Timer im CTC-Modus betrieben um einen Servo anzusteuern, der Vergleichswert OCR1A wird dazu beim Compare-Interrupt immer zwischen Puls und Pausen Wert umgeschaltet. Gleichzeitig kann man über 2 Taster den Servo nach links oder rechts verstellen. dazu wird einfach etwas auf den OCR1A Wert hinzugerechnet oder abgezogen. Dem entsprechen bewegt sich der Servo nach links bzw. rechts. Aber nicht immer einheitlich, je nachdem ob man sich gerade in einer Puls oder Pause Phase befindet geht es beim selben Taster in die andere Richtung. Statistisch jeder 10-20 Tastendruck geht in die falsche Richtung. Noch fataler wird es wenn man statt der inkrementierenden Veränderung Absolutwerte vorgibt. passiert dies zum falschen Zeitpunkt ist das Signal sogar falsch herum, sprich invertiert. Die Überlegung im letzten Absatz entstanden nachdem ich den Code übernommen habe und statt Taster das ganze über UART erhöht bzw verringert habe, und der Servo ab und zu falsch herum lief. Das Beispiel mit der Ansteuerung mehrere Servos find ich auch nicht gut gelöst, die Pausenzeiten sind zwar nicht so wichtig, allerdings macht es schon einen Unterschied ob nun 18,5ms oder nur 6 ms einen Servo "erholen" lasse. (Auflösung, Haltekraft etc)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.