Ich habe folgendes Programm für meinen Asuro geschrieben, jedoch find ich den/die Fehler im Quelltext nicht warum es sich nicht mit der makeall übersetzen lässt.
Einen Fehler im Makefile kann ich ausschließen.
Vielen Dank für eure Hilfe
Florian
PS: Was bedeutet das /* ..... */
Code:#include "asuro.h" int Main (void) { // unsigned int i,data[2]; // unsigned char count = 0,flag = 0; Init(); /* for (i = 0; i < 0x1FFF; i++) { OdometrieData(data); if ((data[0] < 200) && (flag == 1)) { count ++; flag = 0; } if (data[0] >= 600) flag = 1; } if (count > 10) Programme(); */ while (1) { if (PollSwitch()) { while (PollSwitch()); Programme(); } Testfahrt(); } return 0; } void Programme (void) { unsigned char sw; SerPrint("Hello I am ASURO"); for (;;) { sw = PollSwitch(); if (sw == 0x01) Geradeaus(); if (sw == 0x02) Abgrund(); //if (sw == 0x04) L1(); //if (sw == 0x08) L2(); //if (sw == 0x16) L3(); //if (sw == 0x32) L4(); } } void Testfahrt(void) { unsigned char s1=100,s2=100; MotorSpeed(150,150); MotorDir(FWD,FWD); while (1) { if (Wheelspeed[0]<150)s1++; if (Wheelspeed[0]>160)s1--; if (Wheelspeed[1]<150)s2++; if (Wheelspeed[1]>160)s2--; Msleep(2); MotorSpeed(s1,s2); } } void Abgrund(void) #define STOP 200 { unsigned int lineData[2]; unsigned char running = 1; MotorDir(FWD,FWD); FrontLED(ON); MotorSpeed(255,255); do { LineData(lineData); if ((lineData[0] < STOP) || (lineData[1] < STOP)) { MotorSpeed(0,0); BackLED(ON,ON); running = 0; } } while (running); while(1); } void Geradeaus(void) { int Lnow; int Rnow; int Rold; int Lold; int Count; int sl; int sr; unsigned int data[2]; Count=0; sl=120; sr=120; while(1){ MotorDir(FWD,FWD); MotorSpeed(sl,sr); OdometrieData(data); if (data[0] > 512) Lnow = 1; else Lnow = 0; if (data[1] > 512) Rnow = 1; else Rnow = 0; if (Lnow ^ Lold) Count++; if (Rnow ^ Rold) Count--; Lold=Lnow; Rold=Rnow; if (Count>0) {sr++;} if (Count<0) {sr--;} if (sr>254){sr=255; sl--;} if (sr<61){sr=60; sl++;} } }







Zitieren

Lesezeichen