Ich habe den Code mal zerlegt, ist vielleicht übersichtlicher...

Code:
void main (void)
{
//Timerinitialisierung
	TCCR2 = 0b001;
	TIMSK |= (1<<TOIE2);
	sei();

while(1)
{}

}

ISR (TIMER2_OVF_vect)
{
	counter = counter + 1;
}
Dieser Timer sollte bei 15MHz Takt alle 17µs die ISR aufrufen, stimmt das?