Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigenes Programm
tom(geppel)
01.09.2008, 11:36
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:
#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
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:
#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
tom(geppel)
01.09.2008, 18:17
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.