benibaerenstark
02.08.2005, 20:10
Hallo zusammen!
Ich habe den Asuro zusammengebaut und er funktioniert soweit hervorragend. Nun habe ich aber schwierigkeiten mit der Programmierung des Roboters. Ich versuchte mich an einer simplen Motorsteuerung, doch der compiler meldet duzende Fehler, wo ich einfach keine entdecken kann! Ich nehme an erfahrenen C-Programmieren müssen die Fehler sofort auffallen! Tausend Dank fürs durchsehen.
code und fehlerstatistik:
#include "asuro.h"
int main(void)
{
Init();
while(1)
{
MotorDir(FWD,FWD);
MotorSpeed(200,200);
StatusLED(GREEN);
while (PollSwitch()==0);//fahren bis kollision
{MotorSpeed(0,0); //bei kollision, motoren abstellen
StatusLED(YELLOW);//nachdenken was passiert ist:
unsigned char taste;
taste = PollSwitch();
if (taste == 32 or taste == 48) //links kollidiert
{MotorDir(BREAK,RWD);
MotorSpeed(0,120);
Sleep(36);} //sollte ca 0.5sec "Pause" sein
else if (taste == 16 or taste == 8 or taste == 4 or taste == 2 or taste == 18) //einige Frontalkollisionen
{MotorDir(RWD,RWD);
MotorSpeed(120,120);
Sleep(36);
MotorDir(RWD,FWD);
Sleep(18);}
else if (taste == 1 or taste == 3)//rechts kollidiert
{MotorDir(RWD,BREAK);
MotorSpeed(120,0);
Sleep(36);}
else//unbekanntes kollisionsmuster
{
while(1)
{StatusLED(RED);
BackLED(ON,OFF);
Sleep(100);
BackLED(OFF,ON);
Sleep(100);}
}
}
} //nach dem "Ausweichen" wieder fahren
return 0;
}
Fehlerstatistik:
test.c: In function `main':
test.c:22: error: parse error before "or"
test.c:27: error: parse error before "else"
test.c:35: error: parse error before "else"
test.c: At top level:
test.c:41: error: parse error before "else"
test.c:46: error: parse error before numeric constant
test.c:46: warning: type defaults to `int' in declaration of `BackLED'
test.c:46: warning: function declaration isn't a prototype
test.c:46: error: conflicting types for `BackLED'
asuro.h:61: error: previous declaration of `BackLED'
test.c:46: warning: data definition has no type or storage class
test.c:47: error: parse error before numeric constant
test.c:47: warning: type defaults to `int' in declaration of `Sleep'
test.c:47: warning: function declaration isn't a prototype
test.c:47: error: conflicting types for `Sleep'
asuro.h:91: error: previous declaration of `Sleep'
test.c:47: warning: data definition has no type or storage class
test.c:48: error: parse error before numeric constant
test.c:48: warning: type defaults to `int' in declaration of `BackLED'
test.c:48: warning: function declaration isn't a prototype
test.c:48: warning: data definition has no type or storage class
test.c:49: error: parse error before numeric constant
test.c:49: warning: type defaults to `int' in declaration of `Sleep'
test.c:49: warning: function declaration isn't a prototype
test.c:49: warning: data definition has no type or storage class
test.c:57:2: warning: no newline at end of file
MAKE.EXE: *** [test.o] Error 1
Ich habe den Asuro zusammengebaut und er funktioniert soweit hervorragend. Nun habe ich aber schwierigkeiten mit der Programmierung des Roboters. Ich versuchte mich an einer simplen Motorsteuerung, doch der compiler meldet duzende Fehler, wo ich einfach keine entdecken kann! Ich nehme an erfahrenen C-Programmieren müssen die Fehler sofort auffallen! Tausend Dank fürs durchsehen.
code und fehlerstatistik:
#include "asuro.h"
int main(void)
{
Init();
while(1)
{
MotorDir(FWD,FWD);
MotorSpeed(200,200);
StatusLED(GREEN);
while (PollSwitch()==0);//fahren bis kollision
{MotorSpeed(0,0); //bei kollision, motoren abstellen
StatusLED(YELLOW);//nachdenken was passiert ist:
unsigned char taste;
taste = PollSwitch();
if (taste == 32 or taste == 48) //links kollidiert
{MotorDir(BREAK,RWD);
MotorSpeed(0,120);
Sleep(36);} //sollte ca 0.5sec "Pause" sein
else if (taste == 16 or taste == 8 or taste == 4 or taste == 2 or taste == 18) //einige Frontalkollisionen
{MotorDir(RWD,RWD);
MotorSpeed(120,120);
Sleep(36);
MotorDir(RWD,FWD);
Sleep(18);}
else if (taste == 1 or taste == 3)//rechts kollidiert
{MotorDir(RWD,BREAK);
MotorSpeed(120,0);
Sleep(36);}
else//unbekanntes kollisionsmuster
{
while(1)
{StatusLED(RED);
BackLED(ON,OFF);
Sleep(100);
BackLED(OFF,ON);
Sleep(100);}
}
}
} //nach dem "Ausweichen" wieder fahren
return 0;
}
Fehlerstatistik:
test.c: In function `main':
test.c:22: error: parse error before "or"
test.c:27: error: parse error before "else"
test.c:35: error: parse error before "else"
test.c: At top level:
test.c:41: error: parse error before "else"
test.c:46: error: parse error before numeric constant
test.c:46: warning: type defaults to `int' in declaration of `BackLED'
test.c:46: warning: function declaration isn't a prototype
test.c:46: error: conflicting types for `BackLED'
asuro.h:61: error: previous declaration of `BackLED'
test.c:46: warning: data definition has no type or storage class
test.c:47: error: parse error before numeric constant
test.c:47: warning: type defaults to `int' in declaration of `Sleep'
test.c:47: warning: function declaration isn't a prototype
test.c:47: error: conflicting types for `Sleep'
asuro.h:91: error: previous declaration of `Sleep'
test.c:47: warning: data definition has no type or storage class
test.c:48: error: parse error before numeric constant
test.c:48: warning: type defaults to `int' in declaration of `BackLED'
test.c:48: warning: function declaration isn't a prototype
test.c:48: warning: data definition has no type or storage class
test.c:49: error: parse error before numeric constant
test.c:49: warning: type defaults to `int' in declaration of `Sleep'
test.c:49: warning: function declaration isn't a prototype
test.c:49: warning: data definition has no type or storage class
test.c:57:2: warning: no newline at end of file
MAKE.EXE: *** [test.o] Error 1