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
Lesezeichen