Gast
#1709284
Sieht jemand den Fehler? Der Timer triggert leider nicht meine LED. Der Controller läuft mit einem 14.7456MHz Quarz, bei einem Prescaler von 1024 erwarte ich 14400 Interrupts in der Sekunde. Bei einer Zählvariable von 5000 sollte ich doch etwas an der LED sehen. Die flackert nicht mal. Vielleicht sieht jemand den Fehler, ich probier jetzt seit 2std rum... Vielen Dank und Gruß Spice [c] //Atmega128L, STK500 #include <avr/io.h> #include <avr/interrupt.h> #include "defines.h" #define F_CPU 14745600L void Timer_start(void); void Timer_stop(void); volatile unsigned int timer=0; ISR(TIMER0_OVF_vect) { timer++; if (timer >= 5000) { timer = 0; PORTB ^= (1 << LED1); } } int main (void) { DDRB |= (1 << LED1); Timer_start(); sei(); while(1) { ; } return 0; } void Timer_start(void) { timer = 0; TCCR0 = 0; //Register resetten TIMSK = (1 << TOIE0); //Overflow Interrupt enablen TCCR0 |= (1 << CS02); TCCR0 |= (1 << CS01); TCCR0 |= (1 << CS00); //Prescaler 1024, Timer starten TCNT0 = 0; } void Timer_stop(void) { timer = 0; TCCR0 = 0; TIMSK &= ~(1 << TOIE0); TCNT0 = 0; } [\c]