Code:
#include <avr/io.h>
#include <avr/interrupt.h>

volatile unsigned char time;

ISR(TIMER1_COMPA_vect){		/* ISR Timer1 Output Compare Match */
time++;						/* Variable wird um 1 erhöht */
}



int main(void){

DDRD=0xff;					/* Gesamtes PortD ist Ausgang */
OCR1A=625;					/* Compare Match Wert, ergibt mit Prescaler einen 10msec Takt */
TIMSK=(1<<OCIE1A);			/* Compare Match freigeben */
TCCR1B= (1<<WGM12)|(1<<CS12);	/* Compare Match, Prescaler /256 */

sei();

for(;;){
if (time>=100){				/* Takt mal 100 ergibt 1sec */
	PORTD^=(1<<PD5);		/* PortD5 wird getoggled */
	time=0;					/* time auf 0 stellen */
	}
}
}
Das ergibt ein blinken einer Led an PD5 im Sekundentakt.