Hallo Dirk,
Danke vor ihre Hilfe!
Es wirkt beinahe. Wann ich die obstacle_left und obstacle_right benutzen mit eine anderes programm (bumper(); zum Beispiel, sehe unterstehend Program), liese die Robot die obstacle_left und obstacle_right nicht mehr aus.
Code:
#include "RP6RobotBaseLib.h"
void bumper(void)
{
uint8_t bumperl = getBumperLeft();
uint8_t bumperr = getBumperRight();
if (bumperl || bumperr)
{
moveAtSpeed(0,0);
move(40, BWD, DIST_MM(100), true);
rotate(40, RIGHT, 180, true);
writeString_P("\n OEPS, bumper geraakt");
}
else
{
writeString_P("\n geen bumper");
setMotorDir(FWD, FWD);
moveAtSpeed(30,30);
}
}
void acsStateChanged(void)
{
writeString_P("\nACS status is veranderd\n");
}
int main(void)
{
initRobotBase();
ACS_setStateChangedHandler(acsStateChanged);
powerON();
setACSPwrMed();
uint8_t y=0;
while(true)
{
writeString_P("\ny = ");
writeInteger(y, DEC);
writeString_P("\n bumper checken!");
task_ACS();
writeString_P("\n na task_ACS ");
task_motionControl();
writeString_P("\n na motionControl");
task_ADC();
writeString_P("\n Na ADC checken");
task_RP6System();
bumper();
writeString_P("\n obstacle left = ");
writeInteger(obstacle_left, DEC);
writeString_P("\n obstacle right = ");
writeInteger(obstacle_right, DEC);
writeString_P("\n\n");
mSleep(1000);
y++;
}
return 0;
}
Aber wenn die Bumper eingedrükt ist und die move und rotate function ausgefürht werden, liese die Robot die Werten von obstacle_left und obstacle_right wohl aus.
Warum liese es die Werten nicht konstant aus?
Gruss Fieke
Lesezeichen