Mhh werde nicht schlauer

WIe muss ich nun dieses Beispielprogramm umschreiben das ich bei Atmega16 das 16bit PWM Signal benutzen kann (ich weiss nur das ich dazu OC1A OC2B zum motor führen muss):


Code:
#include <avr/io.h>
 
int main()
{
  // OC1A auf Ausgang
  DDRB = (1 << PB1 );  //ATMega8
  // DDRD = (1 << PD5 ); //ATMega16
  //
  // Timer 1 einstellen
  //  
  // Modus 14:
  //    Fast PWM, Top von ICR1
  //
  //    WGM13    WGM12   WGM11    WGM10
  //      1        1       1        0
  //
  //    Timer Vorteiler: 1
  //     CS12     CS11    CS10
  //       0        0       1
  //
  //  Steuerung des Ausgangsport: Set at BOTTOM, Clear at match
  //     COM1A1   COM1A0
  //       1        0
 
  TCCR1A = (1<<COM1A1) | (1<<WGM11);
  TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
 
  //  den Endwert (TOP) für den Zähler setzen
  //  der Zähler zählt bis zu diesem Wert
 
  ICR1 = 0x6FFF;
 
  // der Compare Wert
  // Wenn der Zähler diesen Wert erreicht, wird mit
  // obiger Konfiguration der OC1A Ausgang abgeschaltet
  // Sobald der Zähler wieder bei 0 startet, wird der
  // Ausgang wieder auf 1 gesetzt
  //
  // Durch Verändern dieses Wertes, werden die unterschiedlichen
  // PWM Werte eingestellt.
 
  OCR1A = 0x3FFF;
 
  while( 1 )
    ;  
}