leider ohne Erfolg!!!

Ich habe also folgendes versuchsweise geschrieben:

#include <avr/io.h> //Zugriff auf IO's des Controllers
#include <avr/interrupt.h>

volatile unsigned char zaehler;

int main()
{

// Im main einrichten
TCCR0=(1<<WGM1)|(1<<CS02); // CTC, prescaler /256
OCR0=42; // sollte mit dem Prescaler 1msec ergeben
TIMSK=(1<<OCIE0); // Output Comparematch Interrupt aktivieren
sei(); // Interrupt generell freigeben

DDRB = 0xff; //PB0...PB7 als Ausgänge definieren

while(1)
{
PORTB = zaehler;
}
}

//Interruptroutine
ISR(TIMER0_COMP_vect )
{
zaehler++;
}

daraufhin mekert mein AVR Studio mit folgenden Meldungen:

../ZAEHLER/zaehlerinterrupt.c:10: error: `WGM1' undeclared (first use in this function)
../ZAEHLER/zaehlerinterrupt.c:10: error: (Each undeclared identifier is reported only once
../ZAEHLER/zaehlerinterrupt.c:10: error: for each function it appears in.)
../ZAEHLER/zaehlerinterrupt.c: At top level:
../ZAEHLER/zaehlerinterrupt.c:24: warning: return type defaults to `int'
make: *** [zaehlerinterrupt.o] Error 1
Build failed with 3 errors and 1 warnings...

hab ich da was falsch verstanden???