ok, stimt. is aber im prinzip egal oder (außer dass man dann bei echtem dds höhere frequenzen erreichen kann)?
hat ja mit dem timer0 schon super funktioniert, nur jetzt finde ich den fehler beim timer1 nicht.
Druckbare Version
ok, stimt. is aber im prinzip egal oder (außer dass man dann bei echtem dds höhere frequenzen erreichen kann)?
hat ja mit dem timer0 schon super funktioniert, nur jetzt finde ich den fehler beim timer1 nicht.
Probier das init mal soEs ist außerdem nicht gut einen Interrupt einzuschalten und ihn dann nicht verwenden.Code:void init(void)
{
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
}
Hier wird der Overflow Interrupt zwar ohnehin durch den Compare Interrupt gelöscht.Code:TIMSK=(1<<TOIE0); //Timer Overflow Interrupt einschalten
TIMSK=(1<<OCIE1A); //Compare Interrupt einschalten
Ein Interrupt der nicht in eine Interrupt Routine führt, löst ein Reset aus.
Jetzt gehts, danke!