ne das geht nicht, aber ich habe mal Radbruches Variante versucht, versteh zwar net was er da macht aber egal....
allerdings sagt der zur letzten Zeile_"expectet declaration or statement of the end of input"....ich weiß jetzt nicht genau was er da von mir will!!!

Code:
#include "RP6RobotBaseLib.h" 
  

unsigned char brightOld=0;
unsigned char bright=0;

void light(void){
 
 writeIntegerLength(brightOld, DEC, 1);
 writeIntegerLength(bright, DEC, 1);
 writeIntegerLength(adcLSR, DEC, 4);
  
  if(adcLSR<=400){
    bright = 1;
 }
 else if((adcLSR<1000)&&(adcLSR>400)){
    bright = 0;
 }
 else if (adcLSR>=1000){
    bright = 2;
 }

 if(bright != brightOld){
    switch(bright){
       case 0:
	      writeString_P("\nSchon bessa:)!!\n");
          break;
       case 1:
          writeString_P("\nMach das Licht an!\n");
		  mSleep(1000);
          break;
       case 2:
          writeString_P("\nMir ist es hier zu hell!\n");
		  mSleep(1000);
          break;
		  
 }
 brightOld=bright;
 
}

}
void task_ADC(void)
{
   static uint8_t current_adc_channel = 0;
   if(!(ADCSRA & (1<<ADSC))) {
   //   ADCSRA |= (1<<ADIF);
      switch(current_adc_channel) {
         case 0: adcBat = ADC; startADC(ADC_MCURRENT_L); break;
         case 1: adcMotorCurrentLeft = ADC; startADC(ADC_MCURRENT_R); break;
         case 2: adcMotorCurrentRight = ADC; startADC(ADC_LS_L); break;
         case 3: adcLSL = ADC; startADC(ADC_LS_R); break;
         case 4: adcLSR = ADC; startADC(ADC_ADC0); break;
         case 5: adc0 = ADC; startADC(ADC_ADC1); break;
         case 6: adc1 = ADC; startADC(ADC_BAT); break;
      }
      if(current_adc_channel == 6)
         current_adc_channel = 0;
      else
         current_adc_channel++;
   } 
void main (void)
{
   
   initRobotBase();
  
   while(true)
	{
	  task_ADC();
      light();
	 
	} 
   return 0;
   }