-
-
Erfahrener Benutzer
Begeisterter Techniker
Auch der Mega32 kann problemlos 10 Servos ansteuern. Wichtig dabei ist das verwende von Interrupts und Timer. Ich habe das gemacht mit Timer1 (16bit). Der Interrupt Routine (ISR) von Timer 1 werd den ersten Mal durchlaufen und dan werd die Pin von erste Servo hoch gesetzt. In ISR wird dan die Pulslaenge von diesen Servo in OCR Register von Timer 1 uebertragen. Damit wird diesen ISR wiederum activiert exact nach ablaufen diesen Zeit. Beim diesen Durchlauf wird dan Servo1 low gesetztn Servo2 hoch. Und Pulslaenge von Servo2 wiederum in OCR schreiben. So wird die ganse Reihe von Servos durchlaufen, wo das die letzte Zeit so berechnet werd das das ganze nach 20 mS wieder anfangt (nicht kritisch). Diesen Ablauf hat nur eine sehr geringe Belastung von µ : die ISR wird nach 1 bis 2 mS wieder aufgerufen. Da sind bei 8 MHz so um die 8000 Cyclen !! (siehe code bei forum RP6, Servo mit 4 µS Auflosung)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen