so, jetzt ist mein programm fertig. funktioniert einwandfrei. der rp6 findet nun jede lichtquelle zuverlässig.

Code:
#include "RP6RobotBaseLib.h"     
 
#define BATRANGE 500
#define RANGE 1005

void task_LDRinfo(void)
{writeString_P("LDR_L: ");
	writeIntegerLength(adcLSL,DEC,4);
writeString_P(" ; LDR_R: ");
	writeIntegerLength(adcLSR,DEC,4);

writeChar('\n');
	int16_t dif = ((int16_t)(adcLSL - adcLSR));
	if(dif > 50) dif = 50;
	if(dif < -50) dif = -50;
	
	
if(dif==50 && adcLSL<1005 & adcLSR<1005)
	{setLEDs(0b000001);
	
	moveAtSpeed(20,50);}
	

else if(dif==-50 && adcLSL<1005 & adcLSR<1005)
		{setLEDs(0b000010);
		moveAtSpeed(50,20);}
		
else if(adcLSL>1005 || adcLSR>1005)
{moveAtSpeed(0,0);
setLEDs(0b111111);
writeString_P("Lichtquelle gefunden");}


else{setLEDs(0b000000);
		moveAtSpeed(50,50);}
}

void bumpersStateChanged(void)
{if(bumper_left)
	{move(60,BWD,DIST_MM(150),true);
	rotate(50,RIGHT,90,true);
	changeDirection(FWD);
	}

if(bumper_right)
	{move(60,BWD,DIST_MM(150),true);
	rotate(50,LEFT,90,true);
	changeDirection(FWD);}

}


int main(void)
{initRobotBase();
powerON();


BUMPERS_setStateChangedHandler(bumpersStateChanged);

while(true)
{task_LDRinfo();
task_RP6System();
task_ADC();
}
return 0;
}
die werte sind auf einen schwach beleuchteten raum ausgelegt, nur für den fall, dass es jemand ausprobieren will.

mfg