Hier mal mein Programm.
Ich weiß das es schlecht programmiert ist und der Interrupt eigentlich wenig Sinn macht weil der Contoller aktiv wartet.
Das programm stellt ein Lauflicht dar, welches funktioniert hat als ich in der wait() funktion noch mit Schleifen gewartet habe.

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

#define F_CPU 8000000
#define INTS_PER_SECOND 1
#define PRESCALE 256

void wait(void);

volatile uint8_t wasinterrupted;

main()
{
    wdt_disable();

    TCCR1B = (1<<WGM12) | (1<<CS11) | (1<<CS10);
    
    OCR1A = (uint16_t) ((uint32_t)F_CPU*INTS_PER_SECOND/PRESCALE);
    
    TIMSK |= (1<<OCIE1A);

    wasinterrupted = 0;
    sei();


    DDRC = 0xff;
    PORTC = 0xFE;
    while(1)
    {
	PORTC = 0xFE;
	wait();
	PORTC = 0xFD;
	wait();
	PORTC = 0xFB;
	wait();
	PORTC = 0xF7;
	wait();
	PORTC = 0xEF;
	wait();
	PORTC = 0xDF;
	wait();
	PORTC = 0xBF;
	wait();
	PORTC = 0x7F;
	wait();
    	}
}

void wait()
{
    while(!wasinterrupted);
    wasinterrupted = 0;
}


SIGNAL(SIG_OUTPUT_COMPARE1A)
{
    wasinterrupted++;
}