Bin erst jetzt wieder online. Du hast einige Fehler drinnen.
1.) Das "ISR(Timer2_COMP_vect){...} kommt vor main (wie timer init)
2.) Den Timer nur einmal initialisieren
Als Beispiel:
Code:
TIMER2_interrupt_init(void) 
{ 
  TCCR2 = (1<<WGM21) (0<<WGM20) (1<<CS22) (1<<CS21) (1<<CS20); 
  TCNT2=0; 
  OCR2=249; 
  TIMSK = (1<<OCIE2); 
} 

ISR(TIMER2_COMP_vect) 
{ 
  z++;
  if(z==125)
  { 
    sekunde++; 
    z=0;
  } 

  if(sekunde==60)
  { 
     minute++; 
     sekunde=0;
  }

  if(minute==60)
  { 
     stunde++; 
     minute = 0; 
  } 

int main(void) 
{ 
  TIMER2_interrupt_init;

  if(PINA & (1<<PA7)) 
  {
     sei();
  } 

  if(PINA & (1<<PA2) 
  {
     cli(); 
  } 

  while(1); 
}
Statt
Code:
  if(PINA & (1<<PA2) 
  {
     cli(); 
  }
kannst du auch
Code:
  if(PINA & (1<<PA2) cli();
schreiben.

Den Code solltest du kommentieren, damit du später auch noch weißt, warum was geschrieben wurde. (Andere finden sich im Code besser zurecht)

MfG Hannes