Möglicherweise liegt es daran, dass du in der 8. Zeile while(a=1) geschrieben hast. Es muss aber while(a==1) heißen.
Grundsätzlich sind verschachtelte Schleifen kein Problem.
Gruß farratt
sind verschachtelte schleifen nicht möglich? oder habe ich irgentwas falsch gemacht?
Code:#include "asuro.h" int main(void) { int RWD=0; int a=1; Init(); while(a=1) { if (RWD=0) { while (PollSwitch()==0) { BackLED(OFF,OFF); MotorDir(FWD,FWD); MotorSpeed(120,120); } while (PollSwitch()>0){ BackLED(ON,ON); RWD=1; } } else if (RWD=1) { while (PollSwitch()==0) { BackLED(ON,ON); MotorDir(RWD,RWD); MotorSpeed(120,120); } while (PollSwitch()>0){ BackLED(OFF,OFF); RWD=0; } } } }
Möglicherweise liegt es daran, dass du in der 8. Zeile while(a=1) geschrieben hast. Es muss aber while(a==1) heißen.
Grundsätzlich sind verschachtelte Schleifen kein Problem.
Gruß farratt
Es sollte außerdem if (RWD==0) anstatt if (RWD=0) heißen. das Gleichheitszeichen ist in C der Zuweisungsoperator.
MfG Mark
ahh, klar! bin noch ein bischen an Delphi gewöhnt!
Trotzdem gibt es im Programmers Notepad noch folgende Fehler, die ich nicht ganz verstehe:
test.c: In function `main':
test.c:6: error: parse error before numeric constant
test.c:20: error: invalid lvalue in assignment
test.c:33: warning: statement with no effect
RWD ist ein bereits definerter wert, du kannst ihn nicht als variable verwenden. die zeile 6 entspeicht etwa "int 1=2", du kannst aber keiner zahl eine zahl zuweisen. benenne die variable um.
gleiches gilt in den beiden anderen zeilen.
warum geht das nicht? ich kenne es aus anderen programmiersprachen so, das man einer Integer-variablen beim deklariren einen wert zuweißt und diesen dann später überschreibt.
int i=0; //i hat wert 0
i=2; // jetzt hat i den wert 2
warum kann ich RWD nicht als Variable verwenden? Es ist doch eine, solange ich sie anfangs als int deklariere und nicht als #define...
fehler in c:33 behiben, ein gleichheitszeichen zuviel
Aber RWD wurde bereits irgendwo anders deklariert bzw. hier besser gesagt mit #define RWD blabla eine Konstante erzeugt. Du kannst also in deinem Programm kein Integer mehr deklarieren, der RWD heißt. Benenne die Variable also einfach um und du wirst kein Problem mehr haben. Dein restliches Programm hab ich mir jetzt nicht angeschaut, wenn es immer noch nicht klappen sollte, stelle bitte nochmal das bis dahin berichtigte Programm online.
Viele Grüße
CsT
#Code:#include "asuro.h" int main(void) { int RWD=0; int a=1; Init(); while(a==1) { if (RWD==0) { while (PollSwitch()==0) { BackLED(OFF,OFF); MotorDir(FWD,FWD); MotorSpeed(120,120); } while (PollSwitch()>0){ BackLED(ON,ON); RWD=1; } } else if (RWD==1) { while (PollSwitch()==0) { BackLED(ON,ON); MotorDir(RWD,RWD); MotorSpeed(120,120); } while (PollSwitch()>0){ BackLED(OFF,OFF); RWD=0; } } return(0);} }
kein define...
In der Asuro.c und h ist aber RWD schon als define bestimmt.
mfg liggi
Lieber am Asuro rumschrauben als alles andere.
Meine Homepage
ahhhh, jezt verstehe ich! Danke!
so, programm geflasht. leider passiert beim drücken der tasten nichts.
ich hoffe das wird im passenden thema noch geklärt.
Code:#include "asuro.h" int main(void) { int RW=0; int a=1; Init(); while(a==1) { if (RW==0) { while (PollSwitch()==0) { BackLED(OFF,OFF); MotorDir(FWD,FWD); MotorSpeed(120,120); } while (PollSwitch()>0){ BackLED(ON,ON); RW=1; } } else if (RW==1) { while (PollSwitch()==0) { BackLED(ON,ON); MotorDir(RWD,RWD); MotorSpeed(120,120); } while (PollSwitch()>0){ BackLED(OFF,OFF); RW=0; } } return(0);} }
Lesezeichen