Hallo zusammen,
ich bin relativ neu was mC anbelangt und komme gerade einfach nicht
weiter.
Ich möchte einen Servo mit dem 16bit Timer des ATMega8 steuern. Die
Datenleitung des Servos (Modelcraft RS-2) hängt am OC1A Pin des
Microcontrollers. Hier ist mein Code zur Initialisierung des Timers:
1 | void init_timer(void)
|
2 | {
|
3 | DDRB |= (1<<PB1); // Set OCRA1 to output
|
4 |
|
5 |
|
6 |
|
7 | ICR1 = 2499; // der Endwert (TOP)
|
8 |
|
9 |
|
10 | OCR1A = 110;
|
11 |
|
12 | TCCR1A = (1<<COM1A1) | (1<<WGM11); // Modus 14: Steuerung des Ausgangsport: Set at BOTTOM, Clear at match
|
13 | TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS11); // Prescaler auf 8
|
14 | }
|
Man sollte den Servo jeweils mit den Befehlen
bzw.
maximal in beide Richtungen auslenken können. Beim Einschalten jedoch
zuckt er nur kurz.
Ach ja: Mein mC läuft mit 1MHz.
Was mache ich falsch?
VG
Sebastian