wenn du das jetzt an den anfang der programm.c (oder wie die bei dir halt heißt) copiertst, musst du gar nichts an der asuro.h ändern.
Die funktion GoTaster fäöhrt eine bestimmte strecke, bleibt aber bei einem hinderniss sofort stehen.
probier mal aus, ob das funktioniert, ich habs auf die schnelle nicht getestet.
hier der code:
mfg EDHCode:int GoTaster(int distance, int speed) { int enc_count = 0; int tot_count = 0; int diff = 0; int l_speed = speed, r_speed = speed; enc_count=abs(distance); // enc_count=distance*10000; // enc_count/=12823; Encoder_Set(0,0); // reset encoder MotorSpeed(l_speed,r_speed); if(distance<0) MotorDir(RWD,RWD); else MotorDir(FWD,FWD); while(tot_count<enc_count) { tot_count += encoder[LEFT]; diff = encoder[LEFT] - encoder[RIGHT]; if (diff > 0) { //Left faster than right if ((l_speed > speed) || (r_speed > 244)) l_speed -= 10; else r_speed += 10; } if (diff < 0) { //Right faster than left if ((r_speed > speed) || (l_speed > 244)) r_speed -= 10; else l_speed += 10; } Encoder_Set(0,0); // reset encoder MotorSpeed(l_speed,r_speed); if (PollSwitch()>0) { MotorDir(BREAK,BREAK); MotorSpeed(0,0); return 0; } Msleep(1); } MotorDir(BREAK,BREAK); Msleep(200); return 0; }







Zitieren

Lesezeichen