Das Programm ist eigentlich das I2CSlave Programm für die Basis nur das ich im Hauptteil ein paar Sachen zusätzlich eingebaut hab.
Deshalb poste ich mal nur diesen Hauptteil, da der rest unverändert ist.

Code:
int16_t main(void)
{
	initRobotBase();

	setLEDs(0b111111);
	mSleep(500);
	setLEDs(0b000000);

	I2CTWI_initSlave(RP6BASE_I2C_SLAVE_ADR);

	ACS_setStateChangedHandler(acsStateChanged);
	BUMPERS_setStateChangedHandler(bumpersStateChanged);
	IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
	MOTIONCONTROL_setStateChangedHandler(motionControlStateChanged);

	powerON();

	startStopwatch1();

	disableACS();
	setACSPwrOff();

	status.byte = 0;
	interrupt_status.byte = 0;
	drive_status.byte = 0;

	status.watchDogTimer = false;
	status.wdtRequestEnable = false;

	startStopwatch3();
	startStopwatch4();

	uint8_t led_change=0;
	PORTA &= ~ADC0;

	while(true)
	{
		task_commandProcessor();
		task_update();
		task_updateRegisters();
		task_RP6System();
		task_MasterTimeout();

		if ( (remote_control == false) )
		{
            /*
		    writeString_P("Links: ");
            writeInteger(readADC(ADC_LS_L)-5, 10);
            writeString_P(" - ");
            writeString_P("Rechts: ");
            writeInteger(readADC(ADC_LS_R), 10);
            writeString_P("\n\r");
            */
            PORTA |= ADC0;

            changeDirection(FWD);

            if (readADC(ADC_LS_L)-5 > readADC(ADC_LS_R))
            /*
                Abfrage der Widerstandswerte der LDR
                groesserer Widerstand auf einer Seite bedeutet auf dieser
                Seite ist der dunkle Strich

                Ist der Widerstand links groesser als rechts
                dann setze LED-register auf 4 (00000100)
                und steuere Motoren rechts schneller als links
            */
            {
                setLEDs(0b000100);
                //moveAtSpeed(90,30);
            }
            /*
                Ist der Widerstand rechts groesser als links
                dann setze LED-register auf 32 (00100000)
                und steuere Motoren links schneller als rechts
            */
            else
            {
                setLEDs(0b100000);
                //moveAtSpeed(30,90);
            }

            //warte 200 ms bis zum nächsten Durchlauf
            mSleep(200);
		}
		else
		{
		    PORTA &= ~ADC0;

		    switch (led_change)
		    {
		        case 0:
                    setLEDs(0b000000);
                    break;
                case 2000:
                    setLEDs(0b001001);
                    break;
                case 400:
                    setLEDs(0b010010);
                    break;
                case 600:
                    setLEDs(0b100100);
                    break;
                case 799:
                    led_change=0;
                    break;
		    }
            led_change++;
        }
	}
	return 0;
}
im TaskCommander hab ich noch einen neuen case eingebaut, der die variable remote_control setzt

Code:
case CMD_REMOTE:
                remote_control_temp=param1;
                if ( (remote_control_temp == remote_control) )
                {
                }
                else
                {
                    remote_control=remote_control_temp;
                    writeString_P("remote geaendert (BASE) \n\r");
                }
                break;
An der Base selber habe ich ein paar Änderungen vorgenommen, ADC0 ist nun als Ausgang geschaltet und steuert ein FET an. Über das FET schalte ich eine LED Beleuchtung die etwa 170 mA Strom zieht. Und die zwei Photozellen hab ich aus der Platine ausgelötet und über jeweils 2 Kabel wo anders befestigt.

Was ich grad festgestellt habe, sobald die Beleuchtung an ist spielen die 2 Photozellen verrückt. Egal wie ich die dann beleuchte. Hängen ADC0 und die eventuell irgendwie zusammen?

In der definition von PORTA hab ich lediglich ADC0 auf Ausgang gestellt.
Code:
// PORTA

#define UBAT 			(1 << PINA7) // ADC7 (Input)
#define MCURRENT_L 		(1 << PINA6) // ADC6 (Input)
#define MCURRENT_R 		(1 << PINA5) // ADC5 (Input)
#define E_INT1 			(1 << PINA4) // INT1 (input per default... can be output)
#define LS_L 			(1 << PINA3) // ADC3 (Input)
#define LS_R 			(1 << PINA2) // ADC2 (Input)
#define ADC1 			(1 << PINA1) // ADC1 (Input)
#define ADC0 			(1 << PINA0) // ADC0 (Input)

// Initial value of port and direction registers.
#define INIT_DDRA 0b00000001
#define INIT_PRTA 0b00000000
EDIT: Hab mal weiter rumprobiert. Mir scheint das es da irgendein Problem mit der rechten Seite gibt. Sobald ich irgendeine der Photozellen dort anschließe geht der RP6 in diese Störung.
Mal weiterschaun was das sein könnte.