Hi!
Ich will bei einem ATMega 16 (läuft mit 16mhz) den CTC modus des Timer 1 verwenden.
Folgenden Quellcode habe ich:
Timer-Init:
Und zum Testen habe ich noch das:Code:TIMSK=(1<<OCIE1A); //Compare Interrupt einschalten TCCR1B=(1<<CS11); //vorteiler: 8 TCCR1B|=(1<<WGM12); //CTC-Modus TCNT1H=0; // Timer Daten Register Timer1 High auf 0 Setzen TCNT1L=0; // Timer Daten Register Timer1 Low auf 0 Setzen OCR1A = 1999; //für fout=1kHz sei(); //Interrupts einschalten
Das sollte doch eigentlich ein Rechtecksignal am ganzen PORTD erzeugen.Code:ISR(TIMER1_COMPA_vect) { PORTD= ~PORTD; }
Tut es aber nicht.
Wenn ich den PORTD am Anfang auf 1 setze, dann ist er nacher 0, und umgekehrt.
Die ISR wird scheinbar nur 1 mal aufgerufen.
Warum?
MfG
EDIT: Ich benutze AVR Studio 5, vllt liegts ja daran







Zitieren

Lesezeichen