OCR0 im ATMega32 nicht veränderbar

Gast #1569915
Lesenswert?

Hallo miteinander,

ich versuche einen Lenkservo mit PWM anzusteuern. Ich muss einen ~50Hz 
Takt erzeugen, was an sich auch funktioniert, aber um die Richtung 
einzustellen, muss ich einen kurzen HIGH-Puls senden.
Mein Problem ist, dass in der AVR Studio-Simulation das OCR0-Register 
nicht veraendert wird.
Hier der Code von der Initialisierung
1
void init_timer0 ()
2
{
3
  DDRB = (1<<PB3);
4
  //PWM-Signal an PB3 fuer Lenkservo
5
  TCCR0 = (1<<COM01) | (1<<WGM01) | (1<<WGM00) | (1<<CS02) | (1<<CS00);
6
  //Timer0 als Fast-PWM mit Prescale 1/1024. 
7
  //Bei 12MHz System-Clock: ~22ms
8
  //Max. Linksausschlag bei 1,0ms-Puls:  ~12 Schritte (0b00001100)
9
  //Mittelstellung bei 1,5ms-Puls:    ~18 Schritte (0b00010010)
10
  //Max. Rechtsausschlag bei 2,0ms-Puls:  ~24 Schritte (0b00011000)
11
  OCR0 = 0b00010010;
12
}

Ich habs sowohl als Dezimalzahl, als Hexadezimalzahl und auch als 
Binaerzahl, wie oben, versucht. Auch Bitmanipulation hab ich versucht.

Koennt ihr mir helfen?

Vielen Dank schonmal im Voraus
Gast #1570012
Lesenswert?

Haette mir auch selbst denken koennen, dass ichs net erkenn, wenn der 
auf 12MHz laeuft ^^ fuer 1,5ms bin ich zu langsam ;D

Aber eine Frage noch:
Kann ich
1
OCR0 = 0b00010010 + 6
schreiben?
Ich seh leider den Unterschied net ^^

Vielen Dank Holger fuer deinen Gedankenanstoss

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