Wo liegt denn der Fehler?
Wahrscheinlich daran, dass aus 2 zusammengefügten Programmen nicht automatisch ein funktionsfähiges neues Programm wird.

Ich habe es nicht probiert, aber vielleicht wäre dies hier ein Anfang:
Du nimmst dir die RP6Base_I2CSlave.c und fügst in die Hauptschleife ein:
Code:
		task_TVRemote();			// New TV Remote task!
Die Funktion task_TVRemote() fügst du über der Main ein:
Code:
/*****************************************************************************/
// Task TV Remote

/**
 * This is a simple TV Remote task.
 */
 
#define RC5_KEY_FORWARDS 			2  	
#define RC5_KEY_BACKWARDS 			8		
#define RC5_KEY_STOP 				5		
 
void task_TVRemote(void)
{
	if (lastRC5Reception.key_code) {
		writeString_P("Key Code: ");
		writeInteger(lastRC5Reception.key_code, DEC);
		writeString_P("\n");
/*
		switch(lastRC5Reception.key_code)
		{
			case RC5_KEY_FORWARDS: 	 		// Drive forwards:
				changeDirection(FWD);
				moveAtSpeed(80, 80);  
				break;
			case RC5_KEY_BACKWARDS:  		// Drive backwards:
				changeDirection(BWD);
				moveAtSpeed(80, 80);  
				break;
			case RC5_KEY_STOP: 		 		// Stop:
//				changeDirection(FWD);
				moveAtSpeed(0, 0);			// stop moving!
		}
*/
		lastRC5Reception.key_code = 0;
	}
}
So, wie es ist, wird der RC5-Code nur auf dem Terminal angezeigt. Du kannst aber auch Fahrbefehle (Vorwärts, Stop, Rückwärts) geben.
Auf der ControlM32 kann dabei z.B. Example_08_I2CMaster laufen. Wenn du das UART-Kabel auf die M32 umsteckst, wird der RC5-Code auch am Terminal gezeigt.

Wie gesagt: Nicht getestet ... und sicher auch nicht optimal in das Ausgangsprogramm integriert ...

Gruß Dirk