Vielen Dank Radbruch!

Du könntest natürlich Recht haben.
Unten habe ich das Protokoll des Robosapiens aufgeführt.
Trägerfrequenz ist 39,2kHz.
Habe inzwischen noch einen erneuten Versuch unternommen und mein Programm ähnlich aufgebaut wie in der lib des RP6 zum senden von RC5-Signalen.

Timing based on 1/1200 second clock (~.833ms)
Signal is normally high (idle, no IR).
Start: signal goes low for 8/1200 sec.
Data bits: for each of 8 data bits, space encoded signal depending on bit value
Sends the most significant data bit first
If the data bit is 0: signal goes high for 1/1200 sec, and low for 1/1200 sec.
If the data bit is 1: signal goes high for 4/1200 sec, and low for 1/1200 sec.
BTW: The first bit (msb) is always 1 (valid codes are from $80 to $FF)

Carrier is 39,2 kHz


Code:
#include "RP6RobotBaseLib.h" 	


uint16_t Zaehler=0;
uint8_t i;
uint8_t ir_command=137;
uint8_t Aufgabe=0;
uint8_t Zeichen=0;

ISR (TIMER2_COMP_vect)

{
if(Aufgabe==0){
	if(Zeichen==0){
	Aufgabe=1;
	Zaehler=0;}
	if(Zeichen>0 && Zeichen<9){
	Zaehler=0;
		if ((ir_command & 0x80)==0){
		Aufgabe=2;}
		else{Aufgabe=3;}
	ir_command=ir_command << 1;
	Zeichen++;
	}
	if(Zeichen==9){
	PORTD &= ~(1<<PIND7);
	Zeichen=0;
	ir_command=137;
	Aufgabe=0;}
	
}
if(Aufgabe==1){
	if(Zaehler<520){
	PORTD ^= (1<<PIND7);			//PORTD ^= (1<<PIND7);
	Zaehler++;}
	else{
	Aufgabe=0;
	Zeichen=1;}
}
if(Aufgabe==2){
	if(Zaehler<65){
	PORTD &= ~(1<<PIND7);}			//PORTD &= ~(1<<PIND7);
	else{
		if(Zaehler<130){
		PORTD ^= (1<<PIND7);}		//PORTD ^= (1<<PIND7);
		else{ Aufgabe=0;}
	}
Zaehler++;
}

if(Aufgabe==3){
	
	if(Zaehler<260){
	PORTD &= ~(1<<PIND7);}				//PORTD &= ~(1<<PIND7);
	else{
		if(Zaehler<325){
		PORTD ^= (1<<PIND7);}		//PORTD ^= (1<<PIND7);
		else{ Aufgabe=0;}
	}
Zaehler++;
}


}



int main(void)
{
	initRobotBase(); 
	
	TCCR2 = (1 << WGM21) | (0 << COM20) | (1 << CS20);
	OCR2  = 0x66; // 0x66 = 78,4kHz @8MHz
	
	// Initialize Timer Interrupts:
	TIMSK = (1 << OCIE0); //| (1 << OCIE2); // Fixed: Timer2 Interrupt is turned 
	                      // off by default now! It is only active 
						  // when ACS/IRCOMM are transmitting.
	TIMSK |= (1 << OCIE2);
	
	
	while(true)
	{
	
	}

	return 0; 
}