Hallo,
also ich häng jetz mal mein Beispiel für den mega8 ms timer an.
Code:
#include <avr/io.h>
#include <avr/interrupt.h>

#define F_CPU 16000000
#define timer (256-F_CPU/64/1000) 
int ms;


ISR(TIMER0_OVF_vect)											//Timer Interrupt Vector
{TCNT0 = timer;
 ms++;
}


int main(void)
{
//Ports Init 
DDRC |= (1<<PORTC3);

	
//Timer Init
TIMSK |= (1<<TOIE0);											//Timerinterrupt freigeben
TCCR0 |= (1<<CS00) | (1<<CS01) | (!(1<<CS02));					//Timer Prescaler = 64

sei();															//Interrupts global aktivieren

//main Schleife
    for (;;) 
	{	if(ms >=100)
	 	{PORTC ^= (1<<PORTC3);ms = 0;}   
	
	
	}
}
läuft nur timer0 über so wird in die timer isr gesprungen. hoffe ich konnt dir helfen. Ach übrigens 0x05 ist 0b00000101.
mfg franz