Hi Simba,
willkommen im Forum.
... Ich versuch hier verzweifelt auf dem ATmega16 den Timer1 im CTC aufzusetzen ...
Hast Du schon die Dokumentation dazu gelesen? Sind zwar ETLICHE Seiten, aber recht nützlich.
Zitat Zitat von Simba81 Beitrag anzeigen
... einen Beispielcode in C, der mir zeigt, wie man das macht? ...
Der Code ist für nen mega1284 - der mega16 dürfte nicht viel anders sein. Natürlich wirst Du die Parameter selber einstellen müssen. Im Code wird dann die
ISR (TIMER1_COMPA_vect) // Servo[Svpt] wählen + dessen Rampe starten
aufgerufen, es läuft keine Hardware-PWM . . . (wenn das Deine nächste Frage sein sollte).

Code:
// ============================================================================== =
// ==   Timer1  Aufgabe: Servo mit Soft-PWM ansteuern auf wählbarem Port
//      Beispiel:       ....
// - - - - - - - - - - - - - - - -
  void TC1TMR_init(void)        // Init Timer/Counter 1 für 2 ms Servoperiode
  {                             //
    TCCR1B  |= (1<<WGM12);      // WGM12 => CTC, TOP = OCR1A                   S133
    TCCR1B  |= (1<<CS11);       // CS11+10 <=> clk/8 => 2,500 MHz              S134
    OCR1A    = 6400;           // => alle 2,56 ms ein Interrupt
    TIMSK1  |=  (1<<OCIE1A);    // Tmr/Cntr1 Oput CompA Mtch intrrpt enabled
// - - - - - - - - - - - - - - - -
  }                                
// ============================================================================== =
// ============================================================================== =
// ==   Timer1
// - - - - - - - - - - - - - - - -
  void TC1TMR_on(void)          // Init Timer/Counter enable
  {                             //
    TIMSK1  |=  (1<<OCIE1A);    // Tmr/Cntr1 Oput CompA Mtch intrrpt enabled
  }                                
// ============================================================================== =

// ============================================================================== =
// ==   Timer1
// - - - - - - - - - - - - - - - -
  void TC1TMR_off(void)         // Init Timer/Counter disable
  {                             //
    TIMSK1  &= ~(1<<OCIE1A);    // Tmr/Cntr1 Oput CompA Mtch intrrpt disabled
  }                                
// ============================================================================== =