hallo alle zusammen,
hab mir am wochenende nen rp6 zugelegt und jetzt ein erstes programm geschrieben.
es funktioniert auch wie es soll, zumindest bis sich der rp6 einfach"aufhängt"
also er bleibt einfach stehen und tut nichts mehr.
immer bei einem"event" also wenn ein objekt erkannt wird oder die bumper betätigt werden.
mal nach 2 events, mal nach 20 events.
kann mir jemand nen vorschlag machen das programm eleganter umzusetzen?
bitte für mich neuling verständlich
danke im vorraus
hier das programm:
hoffe man kann den code lesenCode:#include "RP6RobotBaseLib.h" char x; void bumpersStateChanged(void) { if(bumper_left) { x = 1; } if(bumper_right) { x = 2; } } void escape(void) { switch(x) { case 1: moveAtSpeed(0,0); move(80, BWD, DIST_MM(100), true); rotate(70, RIGHT, 80, true); x = 3; break; case 2: moveAtSpeed(0,0); move(80, BWD, DIST_MM(100), true); rotate(70, LEFT, 80, true); x = 3; break; case 3: setLEDs(0b000000); updateStatusLEDs(); changeDirection(FWD); moveAtSpeed(120,140); break; case 4: moveAtSpeed(0,0); setLEDs(0b000100); updateStatusLEDs(); rotate(80, RIGHT, 50, true); x = 3; break; case 5: rotate(80, LEFT, 50, true); moveAtSpeed(0,0); setLEDs(0b001000); updateStatusLEDs(); x = 3; break; case 6: rotate(70, LEFT, 90, true); x = 3; break; } } void acsStateChanged(void) { if(obstacle_left) x = 4; if(obstacle_right) x = 5; } int main(void) { initRobotBase(); mSleep(1500); x = 3; powerON(); changeDirection(FWD); setACSPwrMed(); ACS_setStateChangedHandler(acsStateChanged); BUMPERS_setStateChangedHandler(bumpersStateChanged); while(true) { escape(); task_RP6System(); } return 0; }
Leerzeilen gelöscht und aktuellen Code von hier eingefügt:
http://www.arexx.com/forum/viewtopic.php?p=4954#p4954
von radbruch 16:10







Zitieren

Lesezeichen