Forum: Mikrocontroller und Digitale Elektronik Servo ansteuern Mega32


von Servo (Gast)


Lesenswert?

Hallo,

ich möchte einen Servo ansteuern. Dazu muss ja alle 20ms ein Impuls von 
1-2ms Länge erzeugt werden. Nimmt man dafür am besten den Timer und 
Konfiguriert diesen für PWM, oder lieber den Pin manuell in der ISR 
toggeln?

VG

von Modellbauer (Gast)


Lesenswert?

Wie du möchtest. Wenn nur einen Servo gesteuert werden soll, ist die 
Verwendung der HW-Funktionen am einfachsten. Falls viele Servos bedient 
werden sollen muß man das per Software machen, z.B.
http://www.mikrocontroller.net/articles/Soft-PWM

von Michael K. (mmike)


Lesenswert?

So habs ich gemacht ...
1
/************************************************************************************************************/
2
void EnableServoTestTimer ()
3
{
4
  DisableServoTestTimer ();
5
  // External crystal 16 MHz, Prescaler 8
6
  // Enable fast PWM mode 14 (table 47 page 113 ATMega16 Doc): 
7
  TCCR1A    = (1 << COM1A1) | (1 << WGM11);
8
  // Set prescaler 8
9
  TCCR1B    = (1 << CS11) | (1 << WGM13) | (1 << WGM12);  
10
  // Set PWM
11
  ICR1     = (uint16_t)40000;
12
  OCR1A    = (uint16_t)ServoPosition;    // min: 1800, neutral: 3000 max: 4200
13
  sei ();
14
}

Grüße,
Michael

von Servo (Gast)


Lesenswert?

Reicht ein 8-Bit Timer aus, um die Genauigkeit der Servos auszuschöpfen?

von Michael K. (mmike)


Lesenswert?

nope ... bzw. es kommt auf das verwendete Servo und die geforderte 
Genauigkeit an, aber in der Regel eher nicht ...

Grüße,
Michael

von Servo (Gast)


Lesenswert?

Hmm denn der Timer1 Ausgang ist schon belegt. Könnte ich aber nicht 
einfach in der 8-Bit Timer ISR µs zählen? Dann dürfte doch die 
Genauigkeit ausreichen.

von Michael K. (mmike)


Lesenswert?

Das kann natürlich auch funktionieren ...

Grüße,
Michael

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.