reini89
24.06.2008, 13:32
Hallo,
ich habe mir schon einige Beiträge hier durchgelesen und versucht, mein Problem so zu lösen, allerdings habe ich es nicht ganz verstanden. Mein Problem ist, dass der Asuro sich nach einer Tasterbetägtigung dreht, jedoch dann nicht aufhört sich zu drehen, sondern die Drehung noch einige Male öfter macht. Im Forum habe ich gelesen, dass es etwas mit dem Kondensator zu tun haben könnte. Wie kann ich meinen Quelltext nun so verändern, dass das Problem nicht mehr auftritt?
#include "asuro.h"
#define HALT 100
//richtiges Programm mit Poll
int main(void)
{
Init();
unsigned int Ftrans[2];
unsigned char abgrund = FALSE;
unsigned char t;
FrontLED(ON);
MotorDir(FWD,FWD);
while(1)
{
t = PollSwitch();
MotorDir(FWD,FWD);
LineData(Ftrans);
if(!(abgrund) && (t==0))
{
LineData(Ftrans);
if (Ftrans[1] > Ftrans[0])
{
MotorSpeed(90,230);
BackLED(OFF,ON);
StatusLED(GREEN);
abgrund = FALSE;
}
else if((Ftrans[0] < HALT) && (Ftrans[1] < HALT))
{
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
StatusLED(RED);
abgrund=TRUE;
}
else
{
MotorSpeed(230,90);
BackLED(ON,OFF);
StatusLED(YELLOW);
abgrund = FALSE;
}
}
else if(abgrund)
{
MotorDir(FWD,FWD);
MotorSpeed(120,120);
Msleep(400);
MotorSpeed(140,0);
Msleep(1400);
abgrund=FALSE;
}
else if(t>0)
{
MotorDir(RWD,RWD);
MotorSpeed(185,0);
Msleep(1100);
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
abgrund=FALSE;
}
}
while(1)
return 0;
}
Grüße Markus
ich habe mir schon einige Beiträge hier durchgelesen und versucht, mein Problem so zu lösen, allerdings habe ich es nicht ganz verstanden. Mein Problem ist, dass der Asuro sich nach einer Tasterbetägtigung dreht, jedoch dann nicht aufhört sich zu drehen, sondern die Drehung noch einige Male öfter macht. Im Forum habe ich gelesen, dass es etwas mit dem Kondensator zu tun haben könnte. Wie kann ich meinen Quelltext nun so verändern, dass das Problem nicht mehr auftritt?
#include "asuro.h"
#define HALT 100
//richtiges Programm mit Poll
int main(void)
{
Init();
unsigned int Ftrans[2];
unsigned char abgrund = FALSE;
unsigned char t;
FrontLED(ON);
MotorDir(FWD,FWD);
while(1)
{
t = PollSwitch();
MotorDir(FWD,FWD);
LineData(Ftrans);
if(!(abgrund) && (t==0))
{
LineData(Ftrans);
if (Ftrans[1] > Ftrans[0])
{
MotorSpeed(90,230);
BackLED(OFF,ON);
StatusLED(GREEN);
abgrund = FALSE;
}
else if((Ftrans[0] < HALT) && (Ftrans[1] < HALT))
{
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
StatusLED(RED);
abgrund=TRUE;
}
else
{
MotorSpeed(230,90);
BackLED(ON,OFF);
StatusLED(YELLOW);
abgrund = FALSE;
}
}
else if(abgrund)
{
MotorDir(FWD,FWD);
MotorSpeed(120,120);
Msleep(400);
MotorSpeed(140,0);
Msleep(1400);
abgrund=FALSE;
}
else if(t>0)
{
MotorDir(RWD,RWD);
MotorSpeed(185,0);
Msleep(1100);
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
abgrund=FALSE;
}
}
while(1)
return 0;
}
Grüße Markus