Danke für die schnelle Antwort!
Gerade weil sie spät kam (23:29)^^

Läuft jetzt alles. Hab mir bei der Gelegenheit auch gleich angewöhnt, für Zahlen <= 255 CHAR zu nehmen.

Hier mal der Rumpf:
Code:
#include <avr/io.h>
#include <avr/interrupt.h>

volatile unsigned char zyklus;
volatile unsigned char helligkeit; //stellt ein gemeinsames Vielfaches für die 
                                               //jew. Anteile da


SIGNAL (SIG_OVERFLOW2){
zyklus++;
if (zyklus >= helligkeit) PORTB |= (1<<PB0);
else PORTB &= (0<<PB0);

}

void init(){
DDRB = 0b00001111;

TIMSK = 0b01000000;

TCNT1 = 254;// vorladen von TCNT1, damit T1 und T2 nacher synchron laufen
ICR1 = 255;
//***********************
// Anteile der Farben
OCR1A = 255; 
OCR1B = 255; 
OCR2 = 255;
//************************


TCCR1A |= (1<<COM1A1)|(1<<COM1A0)|(1<<COM1B1)|(1<<COM1B0)|(1<<WGM11);
TCCR1B |= (1<<WGM13)|(1<<WGM12)|(1<<CS10);
TCCR2 |= (1<<WGM20)|(1<<COM21)|(1<<COM20)|(1<<WGM21)|(1<<CS20);


sei();
}


int main(void)
{
int schleife;
init();
main2:

for (schleife=0;schleife==250;schleife++){

}

goto main2;
return 0;
}