Servo über Timer2

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Servo über Timer2

      Ein frohes Neues,
      einen Servo mit einem 8bit Timer zu steuern ergibt recht wenig Stufen, wenn die 20ms Wiederholrate (annähernd) eingehalten wird.
      18ms ergibt ca 32 Schritte vom Anfang zum Ende. Das ruckelt unschön :(
      Bei 4,5 ms Wiederholrate ergeben sich mehr als 100 Schritte, womit er geschmeidig läuft. :)
      Allerdings so gar nicht mehr im 'normalen' Bereich :/
      Hat da jemand Erfahrung mit? Gilt das Verhalten auch noch wenn ein anderer (digitaler)Servo verwand wird?
    • Machst du das mit dem Servo-Befehl?
      Code?

      Soweit ich weis, ist das mit den 20ms nicht so kritisch, aber alles hat seine Grenzen.
      Man muss im Hinterkopf behalten, dass bei 8 Kanälen von einer Funke 8x 2ms als längste Pulse ausgegeben werden.
      Alle nacheinander. Das ergibt dann schon 16ms für 8 Kanäle mit je 2ms Puls. Dann braucht es eine Pause, damit man den Anfang findet von etwas mehr als ein Puls. Daher kommen die 20ms Wiederholrate.
      Dem Servo dürfte das relativ egal sein (in Grenzen).

      Der Servobefehl gibt die Pulse für alle konfigurierten Kanäle mit Hilfe des Waitms-Statements aus (Pin an, Waitms Pulsdauer, Pin aus/nächster an, waitms Pulsdauer K2 usw.). Der Timer wird nur benutzt, um das Timing für die 20ms zu generieren.

      Das wird nicht mit Hardware-PWM gemacht.

      The post was edited 1 time, last by Mitch64 ().

    • Mitch64 wrote:

      Das wird nicht mit Hardware-PWM gemacht.
      Aber genau das funktioniert bequem. Wenn nötig den Wert setzen und alles andere macht der Timer ohne das die Main mit Ints oder Waits belastet wird. Beim Timer1 können auch die 20 ms sauber eingehalten werden. Nur hat der nur zwei Pwm Ausgänge. Daher der Versuch mit dem Timer2. Wenns mal 8 6 sein müssen kommt wohl ein xTiny. Bei noch mehr vielleicht auch ein 'Dauerint' ähnlich dem Servo Befehl. Da fällt die Anzahl der Servos kaum ins Gewicht.
      Hier der nimmt alles zwischen 0,5-2,5ms (0,37-2,67) als gültige Länge. Die Wartezeit scheint ihm wirklich egal (getestet bis ca 500ms)
    • War bisher nicht nötig. Eine (zu) kurze Suche ergab aber weder günstig noch klein. Das würde vermutlich eher auf xtiny als Slave rauslaufen, der wäre sogar kleiner als die benötigten Anschlusspins. Da er dann quasi nichts zu tun braucht könnte auch der gute alte 2313A 16Sevos per Software steuern :D