Hallo, ich habe da einige Probleme bzw. Fragen an euch:

Mit diesem Programm fährt auch mein Asuro wunderbar geradeaus

#include "asuro.h"
int main(void)
{
int diff;
Init();
while(1){
StartSwitch();
Encoder_Init();
while (!switched) {
MotorDir(RWD,RWD);
MotorSpeed(130,130);
diff = encoder[RIGHT]-encoder[LEFT];
MotorSpeed(175+diff,175-diff);
Msleep(100);

}
if(switched){BackLED(OFF,ON);
StatusLED(YELLOW);}
else if(!switched){BackLED(OFF,OFF);
StatusLED(RED);}
}
return 0;
}



1.) Aber ich verstehe überhaupt nicht ,wie es funktioniert (diff= encoder[RIGHT]... ? ; ...175+diff; eigentlich versteh ich garnichts an diesem Programm) ! Könnte mir einer freundlicherweise das Fettgedruckte genau erklären? Hat etwas mit der neuen Asuro Lib zu tun, aber damit komme ich leider auch nicht klar.

2.) Wieso gehen die BackLEDs nicht mehr aus, sobald der/die Taster losgelassen wurden ?

else if(!switched){BackLED(OFF,OFF);
StatusLED(RED);}

3.) Am wichtigsten: Wie bekomme ich den Programm hin, mit dem ich den Asuro sagen kann, wie weit er fahren soll (in cm oder mm ...) ? Das habe ich hier schon einmal gefragt, aber kam mit den gegebenen Antworten nicht weiter.

Achja bevor wieder gesagt wird: "Forumsuche verwenden..."
-> Ich habe schon alle Beiträge gelesen...


Wäre genial wenn ihr meine Fragen beantworten könntet !