-
Eigenes Programm
Hallo Leute;
ich hab schon vor paar Tagen ein Programm geschrieben , aber es funkt nicht was hab ich wieder falsch gemacht?:
#include "asuro.h"
int main(void) {
unsigned char schnell; // Schneller Gang
unsigned char langsam; //langsamer Gang
schnell = 220;
langsam = 95;
Init();
{
MotorDir(FWD,FWD);
MotorSpeed(schnell,schnell);
while(PollSwitch()==0);
}
{
if(PollSwitch()<8); // da steht kein Smili sondern ne 8^^
{
MotorDir(RWD,RWD);
MotorSpeed(langsam,langsam);
}
else
{
MotorDir(RWD,RWD);
MotorSpeed(schnell,schnell);
}
while(1);
}
}
Der Fehler ist ein Parase Error bei else. Und wenn ich return 0 nach while(1) mache, dann kommt noch mal ne Fehlermeldung. Wieso???
Noch mal ne Frage kann man das auch in Microsoft VisualStudio programmieren ?(Ich habe das Programm kann aber kein C++)
MfG
Tom
-
Ui, da stimmt aber einiges nicht....
Du hast ein wenig zu sehr mit den geschweiften Klammern rumgeworfen - kein Wunder, dass der Compiler meckert.
So wär's schon besser:
Code:
#include "asuro.h"
int main(void) {
unsigned char schnell; // Schneller Gang
unsigned char langsam; //langsamer Gang
schnell = 220;
langsam = 95;
Init();
MotorDir(FWD,FWD);
MotorSpeed(schnell,schnell);
while(PollSwitch()==0);
if(PollSwitch() < 8 )
{
MotorDir(RWD,RWD);
MotorSpeed(langsam,langsam);
}
else
{
MotorDir(RWD,RWD);
MotorSpeed(schnell,schnell);
}
while(1);
}
In Ordnung ist das Programm so immer noch nicht, aber es müsste sich zumindest compilieren lassen. Die weitere Fehlersuche überlasse ich dann erst mal Dir - durch Fehler lernt man schließlich am meisten. Wenn Du gar nicht weiterkommst, einfach wieder hier melden.
Zum Visual Studio kann ich Dir leider nix sagen...
Gruß,
askazo
-
hallo tom(geppel)
ich glaube dein fehler ist das ';' nach dem if (falls ich das mit dem smili richtig entziffern konnte)
denn bei folgendem code
Code:
if( /*abfrage*/ ); // das ; bedeutet mache nichts falls /*abfrage*/ true ist
{
// irgend welche befehler o.ä.
// welche wegen des ;(von oben) immer ausgeführt werden, ohne rücksicht auf die if-abfrage
}
else //parse error, da direkt vor else keine if-abfrage (mit anweisungsblock) ist
{
// irgend welche befehler o.ä.
}
und noch kurz als hinweis:
dein beitrag wäre leichter zu lesen wenn du den code-button benützen würdest. dann gibt es auch kein problem mit smilies o.ä.
und falls du die { nach Init() und vor if(...) wegen der übersichtlichkeit gemacht hast:
lass sie lieber weg und rücke den code mittels tabulator etwas ein. somit wird das lesen auch erleichtert.
damit du siehst was ich meine:
Code:
#include "asuro.h"
int main(void)
{
unsigned char schnell; // Schneller Gang
unsigned char langsam; //langsamer Gang
schnell = 220;
langsam = 95;
Init();
MotorDir(FWD,FWD);
MotorSpeed(schnell,schnell);
while(PollSwitch()==0);
if(PollSwitch() < 8 )
{
MotorDir(RWD,RWD);
MotorSpeed(langsam,langsam);
}
else
{
MotorDir(RWD,RWD);
MotorSpeed(schnell,schnell);
}
while(1);
return 0;
}
ich hoffe, dass dir diese tips weiter helfen
-
OKey;
danke für die Antworten, ich glaube dass ich die gewünschte Funktion anders hinbekommen muss.
Aber trotzdem verstehe ich nicht wieso ASURO nie vorwärts fährt. :?
MfG
Tom