- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 6 von 6

Thema: PWM und Schieberegister

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    ... mit möglichst wenigen HW-PWM-Pins viele Servos ansteuern ... wo 1 PWM Kanal ... 8 Servos ansteuern kann ...
    Mal langsam: PWM macht man ja gerne mit Hardware - es wird ein Timersignal auf einen Controllerpin gesteuert. Wenn man mit "wenigen HW-PWM-Pins viele Servos ansteuern" möchte, dann hat man mehrere Software-Servo-Ansteuerungen. Fazit: ich habe das gleich "ohne PWM" gemacht und steuere dabei 10 (zehn) Servos an, mit gleicher Genauigkeit könnte ich bequem auch 18 oder 20 Servos ansteuern.

    Stichwort (Stichwörter): TIMER1_COMPA_vect und TIMER1_COMPB_vect.

    Erklärung:
    Die ISR TIMER1_COMPA_vect läuft mit 1/10 der Servoperiode und immer mit gleichbleibendem OCR1A-Wert, also gleicher Länge; bei Dir wären das dann nur 1/8. Diese ISR startet die Zeit für die TIMER1_COMPB_vect-ISR und knippst einen Servo an. Der zuständige Servopointer wird mit einem rundlaufenden Zeiger bestimmt, die Länge der COMPB_vect-ISR, sprich OCR1B, wird ebenfalls mit diesem rundlaufenden Zeiger bestimmt, dieser Wert variiert je nach Servo und Deinen Wünschen. Sobald die entsprechende Zeit, sprich OCR1B, abgelaufen ist, wird durch die COMPB_vect-ISR der entsprechende Pinn abgeschaltet. Danach kommt natürlich wieder der Timer1 zu seinem Interrupt und die Geschichte beginnt mit dem nächsten Zeiger genauso. Das Ganze funktioniert sauber und quarzgenau (wenn man die Servo-ISRs nicht mit etlichen anderen Interrupts ausbremst). Einschränkung: OCR1A muss IMMER größer als OCR1B bleiben - plus der Zeiten für die Overhead-Aktionen der ISR.

    Ist Dir das klar? Ausführungen dazu gibts noch im oben erwähnten Link - und auch auf Nachfrage.

    Nachtrag: meinen Code gibts dazu hier (klick).
    Geändert von oberallgeier (18.06.2013 um 14:39 Uhr) Grund: Mustercode für mega1284
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. Schieberegister und Lauflichter
    Von Körperkrämer im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 21.07.2008, 14:08
  2. Schieberegister und 7 Segm.
    Von Mr-400-Volt im Forum Software, Algorithmen und KI
    Antworten: 1
    Letzter Beitrag: 02.03.2007, 22:44
  3. Antworten: 6
    Letzter Beitrag: 09.12.2006, 12:49
  4. ULN und Schieberegister problem
    Von colaturka im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 26.03.2006, 13:44
  5. Schieberegister und LED Display
    Von AEWE im Forum PIC Controller
    Antworten: 7
    Letzter Beitrag: 13.12.2004, 07:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen