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