ich hab jetzt par sachen umgeschrieben, damit es kompakter aussieht.Code:#include "asuro.h" int main(void) { Init (); int cm90=16.5; int s1=10; int s2=20; int i, t; #define vor {while (encoder[LEFT]<=s2*3){MotorDir(FWD,FWD);MotorSpeed(160,160);}}; #define zurück {while (encoder[LEFT]<=s1*3){MotorDir(RWD,RWD);MotorSpeed(160,160);}}; #define links {while (encoder[LEFT]<=cm90*3){MotorDir(FWD,FWD);MotorSpeed(0,160);}}; #define rechts {while (encoder[LEFT]<=cm90*3){MotorDir(FWD,FWD);MotorSpeed(160,0);}}; while (1) { for(i=0;i<10;i++) { PollSwitch(); } t=PollSwitch(); Encoder_Init(); if (t>=1) { zurück; links; vor; rechts; vor; rechts; vor; } else { MotorDir(FWD,FWD); MotorSpeed (160,160); } } return 0; }
Hm... und s1 und s2 sollte für die strecken zählen
werden die encoder werte beim nächsten encoder[LINKS] zurückgesetzt? wenn ja, dann hab ich meinen fehler gefunden







Zitieren

Lesezeichen