hansebanger
22.06.2009, 20:00
Hallo unser Projekt ist eigentlich soweit fertig allerdings macht unser ASURO jetzt nur noch Rückwärts Linkskurven am Stück. Bis wir dass Programm erweitert haben ging jedoch die Funktion mit den Kollisionstaster hervorragend.
Zur Erklärung :Der ASURO soll eine Kurve fahren, an die er im ersten Durchgang anstößt...im zweiten Durchgang soll er sie perfekt nehmen...
Dazu zählt er Linien bis er eine kurve erkennt und speichert diesen Wert ab. Beim nächsten Durchlauf macht er nach der abgespeicherten Anzahl an Linien eine Kurve.
Könnt ihr Erklären warum er jetzt plötzlich nur noch Rückwärtslinkskurven macht?
Vielen Dank
Lg
Hansebanger vs. Bangboy
#include "asuro.h"
void SleepEx(short);
#define STOP 250
int main(void)
{
unsigned char taste;
unsigned int data[2];
int i,S,DrehR,DrehL;
Init();
DrehL=0; // Werte auf null setzen
DrehR=0;
i=0;
S=0;
while (1==1)
{
FrontLED(ON);
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(150,150);
LineData(data);
if ((data[0]<STOP) && (data[1]<STOP))
{
i++;
BackLED(ON,ON);
SleepEx(1);
}
if (i>10)
{
MotorSpeed(0,0);
SleepEx(15);
S=1;
i=0;
}
taste=PollSwitch();
if (taste > 13)
{
DrehR=i;
MotorSpeed(0,0);
StatusLED(RED);
MotorDir(RWD,RWD);
MotorSpeed(0,200);
SleepEx(15);
MotorSpeed(0,0);
SleepEx(10);
MotorDir(FWD,FWD);
MotorSpeed(210,200);
}
else if((taste < 13) && (taste >= 1) )
{
DrehL=i;
MotorSpeed(0,0);
StatusLED(YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(200,0);
SleepEx(15);
MotorSpeed(0,0);
SleepEx(10);
MotorDir(FWD,FWD);
MotorSpeed(210,200);
}
if (S=1)
{
while (i<(DrehL))
{
MotorDir(FWD,FWD);
MotorSpeed(105,100);
}
if (i>=(DrehL))
{
MotorDir(FWD,FWD);
MotorSpeed(120,20);
StatusLED(GREEN);
}
}
}
//************************************************** ************************************
}
void SleepEx(short zsecnds)
{
int wdhlg=zsecnds/.03;
int i=0;
while (i<wdhlg)
{
Sleep(216);
i++;
}
}
Zur Erklärung :Der ASURO soll eine Kurve fahren, an die er im ersten Durchgang anstößt...im zweiten Durchgang soll er sie perfekt nehmen...
Dazu zählt er Linien bis er eine kurve erkennt und speichert diesen Wert ab. Beim nächsten Durchlauf macht er nach der abgespeicherten Anzahl an Linien eine Kurve.
Könnt ihr Erklären warum er jetzt plötzlich nur noch Rückwärtslinkskurven macht?
Vielen Dank
Lg
Hansebanger vs. Bangboy
#include "asuro.h"
void SleepEx(short);
#define STOP 250
int main(void)
{
unsigned char taste;
unsigned int data[2];
int i,S,DrehR,DrehL;
Init();
DrehL=0; // Werte auf null setzen
DrehR=0;
i=0;
S=0;
while (1==1)
{
FrontLED(ON);
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(150,150);
LineData(data);
if ((data[0]<STOP) && (data[1]<STOP))
{
i++;
BackLED(ON,ON);
SleepEx(1);
}
if (i>10)
{
MotorSpeed(0,0);
SleepEx(15);
S=1;
i=0;
}
taste=PollSwitch();
if (taste > 13)
{
DrehR=i;
MotorSpeed(0,0);
StatusLED(RED);
MotorDir(RWD,RWD);
MotorSpeed(0,200);
SleepEx(15);
MotorSpeed(0,0);
SleepEx(10);
MotorDir(FWD,FWD);
MotorSpeed(210,200);
}
else if((taste < 13) && (taste >= 1) )
{
DrehL=i;
MotorSpeed(0,0);
StatusLED(YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(200,0);
SleepEx(15);
MotorSpeed(0,0);
SleepEx(10);
MotorDir(FWD,FWD);
MotorSpeed(210,200);
}
if (S=1)
{
while (i<(DrehL))
{
MotorDir(FWD,FWD);
MotorSpeed(105,100);
}
if (i>=(DrehL))
{
MotorDir(FWD,FWD);
MotorSpeed(120,20);
StatusLED(GREEN);
}
}
}
//************************************************** ************************************
}
void SleepEx(short zsecnds)
{
int wdhlg=zsecnds/.03;
int i=0;
while (i<wdhlg)
{
Sleep(216);
i++;
}
}