Servo Ansteuerung mit fastPWM

Gast #2462865
Lesenswert?

Hallo,

das ist bestimmt das hundertste mal, dass jmd wegen einer 
Servoansteuerung fragt, aber mir ist es wirklich schleierhaft was hier 
passiert. Versuche im Fastpwm-modus einen servo anzusteuern.
Ich nutze einen Mega32 mit 8MHz Clock. Der Prescaler ist 8 was bei 
ICR1=20000 und OCR1A=1500 eine 20ms Pwm mit 1,5ms High-Puls ergeben 
sollte. Mein Oszi taugt nicht wirklich zum Messen, was man aber daraus 
erkennen kann ist, dass alles wesentlich länger ist. Der Servo schlägt 
auch immer an. Der Takt sollte eigentlich passen, da ich noch eine 
serielle Verbindung (zum Starten der PWM) laufen hab, die wie 
eingestellt funktioniert.

Hier der Code für die PWM
1
void startServoPwm()            //Startet PWM mit 20ms länge
2
{
3
  DDRD= (1<<PD5) | (1<<PD4);                //PORTD5 wird als Ausgang def.
4
  TCCR1A= (1<<COM1A1) | (1<<WGM11) | (WGM10);        //Initialisierung Fast PWM 16bit 
5
  TCCR1B= (1<<WGM12) | (1<<WGM13) | (1<<CS11) | (1<<OCR1A);
6
  ICR1=20000;                        //Gesamtlänge der PWM
7
  OCR1A=1500;                        //Verhältnislänge der PWM
8
}

Für Hilfe wäre ich enorm dankbar!
#2462894
Lesenswert?

1
  TCCR1A= (1<<COM1A1) | (1<<WGM11) | (WGM10);
Fällt dir da nicht ein signifikanter Unterschied bei den hinteren beiden 
Klammern (WGM11 und WGM10) auf?
(Ist aber nicht dein eigentliches Problem, denn rein zufällig kommt das 
richtige dabei raus.)

1
  TCCR1B= (1<<WGM12) | (1<<WGM13) | (1<<CS11) | (1<<OCR1A);
Was soll denn das OCR1A darin bewirken?
Gast #2462937
Lesenswert?

Das (WGM10) ist nur ein Überbleibsel und wurde mittlerweile 
ordnungsgemäß dezimiert. Was ich mir bei dem OCR1A<<1 gedacht habe ist 
mir reichlich schleierhaft. Ob das das komische Verhalten verursacht hat 
werde ich, sobald ich wieder in Reichweite des Servos bin probieren.

Vielen Dank schon mal!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren