Hallo WarChild,

mit dieser Timer-Einstellung kannst du einen Interrupt 200kHz (5us) erreichen:
Code:
// Timer 1 - creates an interupt every 5us (is free for your application!) 

	TCCR1A =  (0 << COM1A1) 
			| (0 << COM1A0) 
			| (0 << COM1B1) 
			| (0 << COM1B0) 
			| (0 << FOC1A) 
			| (0 << FOC1B) 
			| (0 << WGM11) 
			| (0 << WGM10);
	TCCR1B =  (0 << ICNC1) 
			| (0 << ICES1) 
			| (0 << WGM13) 
			| (1 << WGM12) 
			| (0 << CS12) 
			| (1 << CS11) 
			| (0 << CS10);
	OCR1A = 9;							// about 200kHz (5us)
	// Enable output compare A match interrupts:
	TIMSK |=  (1 << OCIE1A);
Die ISR sieht dann z.B. so aus:
Code:
ISR (TIMER1_COMPA_vect)
{
	fast_timer++; 
}
Erwarte aber nicht zu viel von dem Code! Da du eine 16-Bit-Variable genommen hast, läuft die schon nach 1/3 Sekunde über!
Zusätzlich belastet der Interrupt ordentlich: Der M32 hat gerade 80 Takte bis er schon wieder in die ISR gezwungen wird!

Was willst du mit einem so schnellen Zähler machen?

Gruß Dirk