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.
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.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; }
Warum liese es die Werten nicht konstant aus?
Gruss Fieke







Zitieren

Lesezeichen