Gast
#570037
Hallo, ich habe momentan irgendein Problem, dass der Timer nicht funktioniert. Das Programm sollte im Sekundentakt die LEDs (PORTB) an und auschalten, allerdings gehen die LEDs nur an, aber nciht mehr aus. Den Takt soll das Programm von dem 16MHz Quarzbaustein bekommen. Der PreScaler 1024 ist nur probeweise, weil ich mir nicht sicher war, ob die LEDs nicht zu schnell an und ausgehen... Hier ist mal mein Programm: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> volatile unsigned char time_ist = 0; SIGNAL (SIG_OVERFLOW1) { time_ist++; } void timer (unsigned char time_soll) { TCNT1 = 0; //Rücksetzen des Timers TCCR1B = _BV(CS12) | _BV(CS10); //Prescaler 1024 TIMSK = _BV(TOIE1); //Timer Overflow Interrupt enable sei (); while (time_soll >= time_ist) {} } int main (void) { DDRB = 0xff; for (;;) { timer (1); PORTB = 0xff; timer (1); PORTB = 0x00; timer (1); } } Vielen Dank schon einmal im Vorraus :)