Ich habe den Fehler gefunden: Hardware Fast PWM funktioniert folgendermaßen: bei überganz von TOP zu BOTTOM wird auf HIGH gesetzt, und beim compare-match auf LOW.
Mit dem Programm haben wir jetzt das "HIGH setzen" übersprungen, was natürlich scheiße ist....

Hier ist das fertige Programm (8MHz)
Code:
#include <avr/io.h>               //I/O Port definitions
#include <avr/interrupt.h>      //Interrupt macros
#include <util/twi.h>         //TWI STATUS


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

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


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 = 255;
   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<<OCIE2); //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 = 10000;                  //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)

}