Code:
#ifndef MCU             
#define MCU  atmega32
#endif

#ifndef F_CPU           
#define F_CPU 16000000UL
#endif
#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){

DDRC=0b11111111;               /* 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();

while(1)
{
if (time>=100)
   {            /* Takt mal 100 ergibt 1sec */
    PORTC^=(1<<PC5);      /* PortD5 wird getoggled */
    time=0;               /* time auf 0 stellen */
   }
}
}
In diesem Code ist gegenüber deinem nur diese eine Zeile geändert.
Wenn es wieder nicht klappt, dann schick mir mal dein *.hex File zum vergleichen.