PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ACS Code funktioniert nicht



honighamster
12.01.2009, 16:48
Hallo,
ich habe meinen Robby RP6 am Freitag gekauft und habe jetzt mein 2. Programm geschrieben:


#include "RP6RobotBaseLib.h"
#define M 60
#define T 50
void acsStateChanged(void)
{
if(obstacle_left)
{moveAtSpeed(M,0);}
if(obstacle_right)
{moveAtSpeed(0,M);}
if(obstacle_right && obstacle_left && bumper_left && bumper_right)
{move(M,BWD,DIST_MM(50),BLOCKING);
rotate(T,RIGHT,180,BLOCKING);}
changeDirection(FWD);}
void bumpersStateChanged(void)
{if(bumper_left)
{moveAtSpeed(M,0);}
if(bumper_right)
{moveAtSpeed(0,M);}}

int main(void)
{
initRobotBase();
setLEDs(0b111111);
BUMPERS_setStateChangedHandler(bumpersStateChanged );
ACS_setStateChangedHandler(acsStateChanged);
powerON();
setACSPwrMed();
while(true)
{
moveAtSpeed(M,M);
task_RP6System();
}

return 0;}


Der Roboter sollte also eine Geschwindigkeit von (50,50) haben und auf Bumper sowie ACS reagieren.
Leider fährt er nur gerade aus.
Kann mir jemand helfen?
Danke im vorraus
Grüße honighamster

radbruch
12.01.2009, 17:14
if(obstacle_right && obstacle_left && bumper_left && bumper_right)

|| sollte das wohl sein, oder?

Ich bin mir nicht sicher ob man in den Eventhandlern blockierende Funktionen aufrufen sollte. Besser wäre hier ein Flag das in Main() geprüft werden kann.

Gruß

mic

honighamster
12.01.2009, 18:02
ja da sollte || hin allerdings hat er das nicht akzeptiert^^
und meinst du ich soll z.B.

if(bumper_left || bumper_right)
BumperAktion();

?

honighamster
14.01.2009, 15:24
hallo?
kann mir mal bitte jemand helfen?
ich wäre sehr dankbar...

Panzerfan
14.01.2009, 15:49
Hi Honighamster

Wenn man

if(bumper_left || bumper_right)
{
bumperAktion;
.........
}

verwendet dann macht der RP6 was wenn mindestens ein Bumper gedrückt wird(also das "||" bedeutet "oder")

wenn man aber

if(bumper_left && bumper_right)
{
Bumperaktion;
......
}

dann macht der RP6 nur was wenn beide Bumper gleichzeitig gedrückt sind(Das "&&" steht also für"und")


mfg Panzerfan