Forum: Mikrocontroller und Digitale Elektronik Frage zu Artikel Signalerzeugung mittels Timer


von Simon (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.