so nun habe ich den code mit verschiedenen Empfängern erfolglos getestet.

Was ist falsch?

Code:
#define F_CPU 1200000UL     //Taktfrequenz CPU 1,2MHz
#include <avr/io.h>				
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>

//LED-Ports
#define LED1 1
#define LED2 2
#define LED3 3
#define LED4 4

uint16_t C;     //Integer einfügen und Variable für Zählerstand festlegen

int main(void)
{
	
	DDRB = 0b00011110;      //Eingänge und Ausgänge definieren
	PORTB = 0b00000000;     //Pullups setzen
	
	//Einstellungen für PCINT	
	MCUCR = (1<<ISC00);      //Jede logische Änderung an INT0 erzeugt eine Interrupt-Anforderung
	GIMSK = (1<<PCIE);         //PCINT aktivieren
	PCMSK = (1<<PCINT0);     //PCINT0 Eingang wird genutzt
	
	//Einstellungen Timer / PWM
	TCCR0A = ((1<<WGM00) | (1<<WGM01));     //FastPWM (Top=0xFF Update of OCRx at = TOP TOV Flag Set on = MAX)
	TCCR0B = (1<<CS01);			//Prescaler clk/8

	
	sei();     //globale Interrupts aktivieren
	
	
	while(1)
		{

		if (C < 80)
			{
				PORTB &= ~((1<<LED1) | (1<<LED2) | (1<<LED3) | (1<<LED4));
				sei();
			}
		
		
		else if((C > 80) & (C < 190))
			{
				PORTB &= ~((1<<LED2) | (1<<LED4));
				PORTB |= (1<<LED1);
				PORTB &= ~(1<<LED3);
				_delay_ms(500);
				PORTB |= (1<<LED3);
				PORTB &= ~(1<<LED1);
				sei();
				_delay_ms(500);
			}
		

		else if (C > 190)
		
			{
				PORTB |= ((1<<LED2) | (1<<LED4));
				PORTB |= (1<<LED1);
				PORTB &= ~(1<<LED3);
				_delay_ms(500);
				PORTB |= (1<<LED3);
				PORTB &= ~(1<<LED1);
				sei();
				_delay_ms(500);
			}


		}
			
}

ISR(PCINT0_vect)

{
	if(PINB & (1<<PB0))     //erkennung steigender Flanke
	{
		TCNT0 = 0;
	}
	else     //ansonsten
	{	
		C = TCNT0;     //Zählerstand auslesen und in variable schreiben
		cli();
	}
}
Habe schon mit den Einstellungen am Sender gespielt hab verschiedene Prescaler / Integer ausprobiert. Was kann ich noch machen?

Gruß
Lichti01