Hi,
etwas verspätet, aber trotzdem. Ihr hattet Recht, es lag am Code und einer fehlenden Veroderung im TIMSK-Register. Jetzt geht's:
Code:
   //Timer0 so Langsam wie möglich
   TCCR0 |= (1<<CS02) | (1<<CS00); //Prescaler=1024
   TCNT0 = 0;
   TIMSK |= (1<<TOIE0);

  //timer 1 auf sekundentakt
  TCCR1B = ( (1 << CS12) | (1 << CS10)| (1 << WGM12) ); // Prescaler auf 1024 und CTC mode akivieren
  OCR1A = 15625; // wert für 1s vorladen 
  TIMSK |= (1 << OCIE1A) ; // Output Compare Interrupt aktiveren
Ich habe eine andere Frage, und zwar kann ich den Timer2 ja ebenfalls im CTC Modus laufen lassen. Jetzt ist es so, dass ich Frequenzen im Bereich von 60Hz bis 10kHz rausgeben möchte. Der AVR ist mit einem 16MHz Quarz getaktet. Ich dachte Anfangs, ich könnte das einfach so realisieren:
Code:
  //setze Timer2 in den CTC Modus und lasse jede µs ISR auslösen.
  TCCR2 |= (1<<CS20) | (1<<WGM21);      // Prescaler von 1 | CTC-Modus
  OCR2  = 8;                              // Vergleichswert für 1µs Periode
  TIMSK |= (1<<OCIE2);                   // Interrupts aktivieren und damit Timer starten
Im ISR Vector hatte ich dann vor, den Port immer wenn eine gewisse Periode erreicht wurde zu togglen:
Code:
ISR(TIMER2_COMP_vect) 
{
    T2count++;
    if (T2count == T2period)
    {
      MOT_A_PORT ^= (1<<MOT_A_C_PIN);
      MOT_B_PORT ^= (1<<MOT_B_C_PIN);
      T2count = 0;
    }
}
Nachdem ich das ausprobierte ging das zwar, aber mir fiel auf, dass egal was ich für einen Wert in OCR2 schreibe, ich keinen Einfluss habe. Nach Überlegungen bin ich drauf gekommen, dass es sein kann, dass alles quasi zu schnell läuft, sprich viele ISRs verschluckt werden, da die Ausführung und Einsprung in die ISR ja wieder Zyklen kostet.
Deswegen wollte ich mir diese Form der Realisierung abschminken. Hättet ihr einen klugen Lösungsansatz, mit dem ich quasi ausgehend von der gewünschten Frequenz den passenden Prescaler und Vorladewert quasi "autodetecten" lassen könnte? (Die Formeln zur Berechnung aus dem Datenblatt kenne ich, aber das Ganze kam mir zu unelegant vor...)

Besten Dank,
Simon