Hallo Franz

Ist ja kein Problem und war auch nicht als Kritik gemeint. Konnte es mir halt nicht verkneifen.

Der Fehler falls es dich interessiert ist:
TCCR1A = (1<<WGM11)|(1<<WGM12)|(1<<COM1A1) |(1<<COM1B1);

WGM12 wird in TCCR1B gesetzt.

Mein (hoffentlich finaler) Code:


void init_servo ( void )
{
/*
//TCCR1A = (1<<WGM11)|(1<<COM1A1) |(1<<COM1B1); //10BIT FAST PWM aktivieren für 1A und 1B
TCCR1A = (1<<WGM11)|(1<<COM1A1) |(1<<COM1B1); //10BIT FAST PWM aktivieren für 1A und 1B
//TCCR1B = (1<<WGM13)|(1<<CS12) ; //Vorzähler CK/256
TCCR1B = (1<<WGM13)|(1<<CS12)|(1<<CS10) ; //Vorzähler CK/256

ICR1H = 1;
ICR1L = 644;*/

TCNT1 = 0xB1E0;
TCCR1A = (1<<COM1A1)| (1<<COM1B1);
TCCR1B = (1<<WGM13)|(1<<CS11); 0x13; //start Timer
OCR1A = 1500;
OCR1B = 1500;
ICR1 = 0x4E20;

DDRB |= ( 1<<PB1 ); //Servo links
DDRB |= ( 1<<PB2 ); //Servo rechts

}

Damit werden beide Servos auf Nullstellung (1,5ms) initialisiert.
Wenn Du voll Gas möchtest setzt Du
OCR1A = 2500; //(==2,5ms)

LG
Rubi