Evilfrag
31.08.2010, 10:03
Also zur Erklärung: Der Asuro soll bemerken, ob die linke oder die rechte Tasterhälfte gedrückt wird und somit nach links fahren, wenn er rechts aktiviert wurde. Allerdings bleibt er nach dem zurückfahren stehen und wir haben schon keine Idee mehr, was man noch machen könnte.
Hier der Quellcode:
#include <stdlib.h>
#include <asuro.h>
int main()
{
Init();
unsigned spd = 100;
EncoderInit();
EncoderStart();
while(1)
{
StartSwitch();
while(!switched)
{
StatusLED(RED);
FrontLED(ON);
MotorDir(FWD, FWD);
MotorSpeed(spd, spd);
}
while(switched)
{
unsigned t1 = PollSwitch();
unsigned t2 = PollSwitch();
if(t1 && t2 && t1 == t2)
{
if(t2 == K1 || t2 == K2 || t2 == K3)
{
StatusLED(GREEN);
GoTurn(-100, 0, 100);
GoTurn(0, 90, 100);
}
if(t2 == K4 || t2 == K5 || t2 == K6)
{
StatusLED(YELLOW);
GoTurn(-100, 0, 100);
GoTurn(0, -90, 100);
}
/*FrontLED(OFF);
StatusLED(GREEN);
GoTurn(-200, 0, 100);
GoTurn(0, 90, 100);*/
}
switched = FALSE;
}
}
}
Hier der Quellcode:
#include <stdlib.h>
#include <asuro.h>
int main()
{
Init();
unsigned spd = 100;
EncoderInit();
EncoderStart();
while(1)
{
StartSwitch();
while(!switched)
{
StatusLED(RED);
FrontLED(ON);
MotorDir(FWD, FWD);
MotorSpeed(spd, spd);
}
while(switched)
{
unsigned t1 = PollSwitch();
unsigned t2 = PollSwitch();
if(t1 && t2 && t1 == t2)
{
if(t2 == K1 || t2 == K2 || t2 == K3)
{
StatusLED(GREEN);
GoTurn(-100, 0, 100);
GoTurn(0, 90, 100);
}
if(t2 == K4 || t2 == K5 || t2 == K6)
{
StatusLED(YELLOW);
GoTurn(-100, 0, 100);
GoTurn(0, -90, 100);
}
/*FrontLED(OFF);
StatusLED(GREEN);
GoTurn(-200, 0, 100);
GoTurn(0, 90, 100);*/
}
switched = FALSE;
}
}
}