Eher so was in der Richtung.
Da war einiges nicht korrekt, ich überlass mal dir rauszufinden, was...
Mal ins Blaue und nicht getestet, aber auf jeden Fall näher dran:
Code:#include <avr/io.h> #include <avr/interrupt.h> volatile int i; ISR(TIMER0_OVF_vect) { i++; } int main (void) { TCCR0 |= (1<<CS00) | (1<<CS02); TIMSK |= (1<<TOIE0); sei(); // main loop while (1) { do // loop while i <= 2000 { int j; // atomic! cli(); j = i; sei(); if (j > 2000) break; } DDRC=0xFF; PORTC=0x00; //LEDS sollen jetzt nach Ablauf der Zeit zugeschaltet werden // freeze cli(); while (1); } }
Lesezeichen