Hallo
Böser Fehler hat sich da eingeschlichen.
Code:
void timer (void){
TIMSK = _BV(TOIE0); // Hier setzt du das Flag OK !!!!!!!!!!!!!!!!!!!!!!!!!!
TCNT0 = 0; //Rücksetzen des Timers
TCCR0 = _BV(CS01); //Prescaler 8
}
void timer1 (void){
TIMSK = _BV(TOIE1); //hier löschst du aber gleichzeitig das TOIE0 Flag, da du das Register überschreibst. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TCNT1 = 0; //Rücksetzen des Timers
TCCR1B = _BV(CS00); //Prescaler 1
}
Also besser so, da TIMSK ein Register ist.
Code:
void timer (void){
TIMSK |= _BV(TOIE0); //overflow flag setzen--> ab jetzt kann overflow interrupt ausgelöst werden
TCNT0 = 0; //Rücksetzen des Timers
TCCR0 = _BV(CS01); //Prescaler 8
}
void timer1 (void){
TIMSK |= _BV(TOIE1); //overflow flag setzen--> ab jetzt kann overflow interrupt ausgelöst werden
TCNT1 = 0; //Rücksetzen des Timers
TCCR1B = _BV(CS00); //Prescaler 1
}
Simulieren in AVR Studio ganz grob
Neuen Ordner anlegen / C File schreiben und in den Ordner speichen / MFILE aufrufen / Einstellugen vornehmen in Menuezeile MAKEFILE / MAIN file name = Name des C Files / MCU Type = uC wählen / OUTPUT Format = ihex / DEBUG FORMAT = AVR ext coff .
Dann unter FILE das Makefile in den Ordner speichern und Make All ausführen.
Im AVR Studio OPEN/ den Ordner öffnen / C Filename mit der Endung *.cof öffnen / AVR Simulator wählen / uC wählen fertig.
MFG
Dieter
Lesezeichen