Ich denke schon das ich es richtig übernommen habe.

Die einzigen änderungen sind ja:
Code:
ISR(TIMER2_COMP_vect)
und
in der ISR TIMER1_CAPT_vect
TCNT2 = 0;
die CPU definition hab ich drin und natürlich den rest an 16Mhz angepasst.

Aber da scheint echt was nicht zu passen.
So siehts jetzt aus:
Code:
#include <avr/io.h>               //I/O Port definitions 
#include <avr/interrupt.h>      //Interrupt macros 
#include <util/twi.h>         //TWI STATUS 

#define F_CPU 16000000UL      //CPU Tackt 

/*----------------------------------------------------------------------------------------*/ 
//PWM 
/*----------------------------------------------------------------------------------------*/ 

//750 = 1.5ms 
volatile int schulter= 1500;        
volatile int huefte = 1500;          
volatile int knie = 1500;    


void pwm_init(int schulter, int huefte, int knie);   //PWM_init Funktion        
void pwm_chance(int schulter, int huefte, int knie);//Anpassen der PWM grössen 

/*----------------------------------------------------------------------------------------*/ 
//MAIN AUFRUF 
/*----------------------------------------------------------------------------------------*/ 

int main(void) 
{ 
   DDRB = 0xFF;                                 //B... AUSGANG 
   PORTB &= ~((1<<PORTB1) | (1<<PORTB2) | (1<<PORTB3));   //B.. Low 

   sei();                                        //Globale Interupts zulassen 
   pwm_init(schulter, huefte, knie);                  //PWM initialisieren 
                            


   while(1) 
   { 

        
   } 

} 


ISR(TIMER2_COMP_vect)   //Überlaufinterupt Timer2 
{ 
   TCCR2 = 0x00;   //Löschen von Timer2 
} 

ISR(TIMER1_CAPT_vect)   //Captureinterupt Timer1 
{ 
  TCNT2 = 0;
   TCCR2 = (1<<WGM20) | (1<<WGM21) |(1<<COM21) | (1<<CS22) | (1<<CS20);    //Setzten von Timer2 
} 



void pwm_init(int schulter, int huefte, int knie) //PWM initialisieren 
{ 
   TIMSK |= (1<<TICIE1) | (1<<TOIE2); //Interupt initialisieren, freischalten 

   //Timer 1 (Port 0/1) 
   TCCR1A = (1<<COM1A1)| (1<<COM1B1);    //Clear OC on Comp Match when up-count, set downcount 
   TCCR1B = (1<<WGM13) | (1<<CS11) ;   //PWM Phase abd Freq Correct. Prescaler 8 
   ICR1 = 20000;                  //Periodendauer Servo 20ms 
   OCR1A = schulter;                  //Servosignal (Port 0, Schulter) 
   OCR1B = huefte;                  //Servosignal (PORT 1, Hüfte) 

   //Timer 2 (Port 2) 
   TCCR2 = (1<<WGM20)| (1<<WGM21) | (1<<COM21) | (1<<CS22) | (1<<CS20);    //Fast PWM 
   OCR2 = (knie/8);                     //Servosignal (Port2, Knie) 

}