frank1210
09.02.2010, 12:20
Hi bei experimentieren mit Funktionen habe ich folgendes gebastelt:
#include "asuro.h"
int i=0;
void Wende_r(void) //Funktion Wende rechts
{MotorDir(RWD,RWD);
MotorSpeed(100,200);
for(i=0;i<200;i++){Sleep(255);}
}
void Wende_l(void) // Funktion Wende links
{MotorDir(RWD,RWD);
MotorSpeed(200,100);
for(i=0;i<200;i++){Sleep(255);}
}
int main(void)
{
Init();
while(1) // Endlosschleife
{
StatusLED(RED); // Status Rot
MotorDir(FWD,FWD); // Fährt geradeaus
MotorSpeed(200,200);
while((PollSwitch()>=2)&&(PollSwitch()<8)) // bei Kollisieon recht
{
StatusLED(GREEN); // Status Grün
MotorDir(BREAK,BREAK); // beide Motoren Stop
MotorSpeed(0,0); // Geschwindigkeit 0
for(i=1;i<300;i++) Sleep(255); // kurze Pause
Wende_l(); // oben definierte Funktion Wende links ausführen, und danach wieder geradeaus
}
while((PollSwitch()>=8)&&(PollSwitch()<=32)) // bei Kollisieon links
{
StatusLED(YELLOW); // Status gelb
MotorDir(BREAK,BREAK); // beide Motoren Stop
MotorSpeed(0,0); // Geschwindigkeit 0
for(i=1;i<300;i++) Sleep(255); // kurze Pause
Wende_r(); // oben definierte Funktion Wende rechts ausführen, und danach wieder geradeaus
}
}
return 0; // wird nie erreicht
}
Mein ASURO spinnt aber bei diesem Programm. Mal fährt er geradeaus, und fängt plötzlich mit dem abarbeiten der Funktionen an, manchmal fährt er garnicht erst los, und macht gleich Quatsch.
Mit dem Tasterausleseprogramm bekomme ich korrekte Werte;1;2;4;8;16;32
Woran kanns liegen???
#include "asuro.h"
int i=0;
void Wende_r(void) //Funktion Wende rechts
{MotorDir(RWD,RWD);
MotorSpeed(100,200);
for(i=0;i<200;i++){Sleep(255);}
}
void Wende_l(void) // Funktion Wende links
{MotorDir(RWD,RWD);
MotorSpeed(200,100);
for(i=0;i<200;i++){Sleep(255);}
}
int main(void)
{
Init();
while(1) // Endlosschleife
{
StatusLED(RED); // Status Rot
MotorDir(FWD,FWD); // Fährt geradeaus
MotorSpeed(200,200);
while((PollSwitch()>=2)&&(PollSwitch()<8)) // bei Kollisieon recht
{
StatusLED(GREEN); // Status Grün
MotorDir(BREAK,BREAK); // beide Motoren Stop
MotorSpeed(0,0); // Geschwindigkeit 0
for(i=1;i<300;i++) Sleep(255); // kurze Pause
Wende_l(); // oben definierte Funktion Wende links ausführen, und danach wieder geradeaus
}
while((PollSwitch()>=8)&&(PollSwitch()<=32)) // bei Kollisieon links
{
StatusLED(YELLOW); // Status gelb
MotorDir(BREAK,BREAK); // beide Motoren Stop
MotorSpeed(0,0); // Geschwindigkeit 0
for(i=1;i<300;i++) Sleep(255); // kurze Pause
Wende_r(); // oben definierte Funktion Wende rechts ausführen, und danach wieder geradeaus
}
}
return 0; // wird nie erreicht
}
Mein ASURO spinnt aber bei diesem Programm. Mal fährt er geradeaus, und fängt plötzlich mit dem abarbeiten der Funktionen an, manchmal fährt er garnicht erst los, und macht gleich Quatsch.
Mit dem Tasterausleseprogramm bekomme ich korrekte Werte;1;2;4;8;16;32
Woran kanns liegen???