Hallo

Ich habe leider noch ein Problem mit dem Timer0 meines AtMega8. Ich bekomme den Timer zum laufen. In die ISR geht er auch. Dort möchte ich eine Variable hochzählen... Also soetwas wie einen verschachtelten Timer. Das benötige ich um ein großes Zeitfenster zu bekommen. Mir schwebt da soetwas vor wie while(t<50)... in der Zeit wird im Hauptprogramm etwas ausgeführt. Und "Zwischendurch" wird in der ISR immer wieder die Variable t hochgezählt. Das scheint aber nicht zu funktionieren.... Dass ich die Variable auch irgendwann wieder zurücksetzten muss weiß ich auch... mir geht`s im Moment ersteinmal überhaupt einen Durchlauf hin zu bekommen... Hier mal mein Code:

Code:
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <util/delay.h>

#define F_CPU = 12000000L

int t=0;							//Variable t für Timer anlegen



int main(void)
{

	DDRD  &= ~(1<<DDD2);			//Pin D2 (INT0) als Eingang deklarieren
	PORTD |= (1<<PD2);				//Pull Up für D2 einschalten
	
	DDRB = (1<<DDB0);				//Port B0 als Ausgang definieren (LED)
	PORTB |= (1<<PB0);				//LED aussschalten
		
	TCCR0 |= (1<<CS00)|(1<<CS02);	//Timer initialisieren und einschalten
	TIMSK |= (1<<TOIE0);			//TimerOverflow Interrupt freigeben??
	sei();							//Interrupts freigeben

	
	while(t<10)
	{
		PORTB &= ~(1<<PB0);			//Einschalten der LED
	}

	while(1);
	
}
Und hier die ISR:
Code:
ISR(TIMER0_OVF_vect)
{
	t++;
}
Vielleicht könnt ihr mir ja auch sagen dass das so gar nicht möglich ist und ich das anders versuchen muss... Vielen Dank schonmal...

Grüße!!

Bean