Joggel84
01.06.2010, 21:56
Hi erstma wieder ^^
ich habe mir gestern mal die Asuro Lib runtergeladen und installiert funktioniert soweit auch alles ganz gut.
Nun habe ich mein Kollisionsprogramm um geschrieben mit GoTurn, was soweit auch super funktioniert (nochmal ein Lob an die Mitwirkenden an der Lib =D> ) und mit Msleep was auch klappt :).
Nun zu meiner Frage könnte mein Programm so Anfängermässig sein das wenn Taster eins gedrückt wird auch ab und an mal Funktionen der anderen Taster mit hinten dran gehängt werden? Seltsamer Weise passen die Abläufe auch meistens zur Situation z.B. wenn er in einer Ecke an Eckt und zufällig 2-3 Funktionen macht ob wohl Physikalisch nur ein Taster betätigt wurde(Der Asuro ist noch in Grundausstattung).
Ich hänge mal mein Programmcode mit dran vielleicht hilft es bei der Antwort , aber für die Profis sieht es Bestimmt extrem Anfänger mässig aus und unübersichtlich, aber bin ja auch noch ein Anfänger auf dem Gebiet ^^
#include "asuro.h"
#include "time.c"
#include "encoder.c"
void main()
{
int zaehler;
Init();
EncoderInit ();
while(1)
{
if (PollSwitch() == 1)
{
if(PollSwitch() == 1)
{
if(PollSwitch() == 1)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn(0,-45,200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
if (PollSwitch() ==2)
{
if(PollSwitch() == 2)
{
if(PollSwitch() == 2)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn(0,-90,200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
else
if (PollSwitch() ==32)
{
if(PollSwitch() == 32)
{
if(PollSwitch() == 32)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn(0,45,200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
if (PollSwitch() ==16)
{
if(PollSwitch() == 16)
{
if(PollSwitch() == 16)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn ( 0, 90, 200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
else
{
StatusLED (GREEN);
BackLED (OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(180,185);
}
}
}
Gruss
Jörg
ich habe mir gestern mal die Asuro Lib runtergeladen und installiert funktioniert soweit auch alles ganz gut.
Nun habe ich mein Kollisionsprogramm um geschrieben mit GoTurn, was soweit auch super funktioniert (nochmal ein Lob an die Mitwirkenden an der Lib =D> ) und mit Msleep was auch klappt :).
Nun zu meiner Frage könnte mein Programm so Anfängermässig sein das wenn Taster eins gedrückt wird auch ab und an mal Funktionen der anderen Taster mit hinten dran gehängt werden? Seltsamer Weise passen die Abläufe auch meistens zur Situation z.B. wenn er in einer Ecke an Eckt und zufällig 2-3 Funktionen macht ob wohl Physikalisch nur ein Taster betätigt wurde(Der Asuro ist noch in Grundausstattung).
Ich hänge mal mein Programmcode mit dran vielleicht hilft es bei der Antwort , aber für die Profis sieht es Bestimmt extrem Anfänger mässig aus und unübersichtlich, aber bin ja auch noch ein Anfänger auf dem Gebiet ^^
#include "asuro.h"
#include "time.c"
#include "encoder.c"
void main()
{
int zaehler;
Init();
EncoderInit ();
while(1)
{
if (PollSwitch() == 1)
{
if(PollSwitch() == 1)
{
if(PollSwitch() == 1)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn(0,-45,200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
if (PollSwitch() ==2)
{
if(PollSwitch() == 2)
{
if(PollSwitch() == 2)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn(0,-90,200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
else
if (PollSwitch() ==32)
{
if(PollSwitch() == 32)
{
if(PollSwitch() == 32)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn(0,45,200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
if (PollSwitch() ==16)
{
if(PollSwitch() == 16)
{
if(PollSwitch() == 16)
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(255,255);
for( zaehler=0; zaehler < 50; zaehler++ )
Msleep(3);
MotorDir(BREAK,BREAK);
for( zaehler=0; zaehler < 100; zaehler++ )
Msleep(5);
GoTurn ( 0, 90, 200);
for( zaehler=0; zaehler < 200; zaehler++ )
{
Msleep(3);
}
}
}
}
else
{
StatusLED (GREEN);
BackLED (OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(180,185);
}
}
}
Gruss
Jörg