Hi

ich beschäftige mich mit dem Timer des Tiny2313.
In meinem code versuche ich genau jede sekunde die Ausgänge des Port B auf high und in der nächsten wieder auf low zu setzten.

Ich will das mit dem Timer (soll auch möglichst genau sein) machen (nicht sleep oder so). Der code compiliert fehlerfrei, allerdings bleibt er nach dem 1 durchgang beim Debuggen stehen.

Habe ich was übersehen oder was ist los?
Benutze ich den Timer überhaupt richtig? (habe mir das nur im tutorial auf mikrocontroller.net angesehen und extra bei keinem anderen projekt abgeschaut)

Code:
#define F_CPU 4096000

#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <stdint.h>

int16_t timer=0;
int8_t status=0;


void initTimer(void)
{
	TCCR0B |= (1<<CS00)|(1<<CS02);
}

void initInterrupts(void)
{
	sei();
}

ISR(TIMER1_OVF_vect)
{
    timer=timer+1;
}

int main (void) 
{
   initTimer();
   initInterrupts();
   DDRB = 0xff;

   while(1) 
   {                
	if(timer>=4000)   //hier bleibt der Debugger erst beim 2ten durchgang der schleife stehen
	{
		timer=0;
		if(status==0)
		{
		PORTB = 0xff;
		status=1;
		}
		else
		{
		PORTB = 0x00;
		status=0;
		}
	}

   }                       
   return 0;
}
Vielleicht sehe ich auch den wald vor bäumen einfach nicht
wäre nett, wenn sich das jemand anschaut
danke