www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik servosteuerung


Autor: crishy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, kann mir jemand tipps zur programmierung einer servosteuerung
geben?

ist es besser die pulsenlänge(20ms) und den impuls(1-2ms) über den
timer zu progammieren. interupt alle 10 µs.

oder nur die pulsenlänge(20ms), interupt alle 20 ms, und den impuls mit
einer warteschleife zu programmieren?

danke für euere hilfe.

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich mach es für 9 Servos so:
state;
servo_val; //16bit

timerinterrupt{
 if (state=0){
   servopin=1;
   timer=servo_val;
   state=1;
 }else{
   servopin=0;
   timer=19ms*clocks_per_ms; //19 is besser als 20 bei einigen servos
   state=0;
 }
}

in servo_val lade ich dann 1000-2000 (=us pulslänge)

Da hast du einen int alle 19ms, dann nach 1-2ms wieder einen dann
wieder 19ms ....

Das lässt sich leicht auf viele Servos erweitern.
Bis zu 9 ist ohne trickserei mit sehr kurzen introutinen möglich ;)

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
war jetzt schnell ausm kopf...
timer= ist natürlich sowas:
OCR1AH = (servo_val)>>8;
OCR1AL = (servo_val)&0xFF;

Autor: Thomas K. (thkais)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig ist, daß das Steuersignal (1-2ms) möglichst stabil anliegt, d.h.
es sollte nicht z.B. von Interrupts unterbrochen werden, sonst fangen
die Servos an zu zittern.

Autor: crishy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für eure hilfe.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.