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;
}
Lesezeichen