So, mit 8-Bit-Sinustabelle und geändertem Programm haben alle Signalformen funktioniert \
/
jetzt versuche ich alles auf den timer2 im ctc Modus umzuschreiben, aber irgendwas stimmt nicht. Die Interrruptschleife wird nicht aufgerufen.
Hier die Codeabschnitte:
Timer-Init:
Code:
void init(void)
{
TIMSK=(1<<TOIE0); //Timer Overflow Interrupt einschalten
TIMSK=(1<<OCIE1A); //Compare Interrupt einschalten
TCCR1B=(1<<CS10); //vorteiler: 1
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
sei(); //Interrupts einschalten
}
Interruptroutine (normalerweist steht da was drin):
Code:
ISR(TIMER1_COMPA_vect) //Interrupt-Routine
{
}
Einstellen der Interruptfrequenz:
der timerwert ist noch fix eingestellt auf 300, das entspricht ca. einem 100Hz-Signal
ps: ich verwende einen atmega 8
Lesezeichen