Also, meine Überlegung ist jetzt momentan, ihn das ganze mit dem ACS machen zu lassen. Er soll sich auf jedem Feldchen einmal nach links umschauen und bei Möglichkeit abbiegen. Wenn vorne, links und rechts blockiert ist, soll er umdrehen.
Jetzt habe ich aber ein Problem mit meinem Code.
Wieso wird immer das aus "ELSE {}" gemacht?
Das verstehe ich nicht :OCode:// Includes: #include "RP6RobotBaseLib.h" uint8_t acs_bool = 0; // Main: void acsStateChanged(void) { //Nix. } int main(void) { initRobotBase(); setLEDs(0b111111); mSleep(2500); powerON(); // Strom für alle Systeme wie ACS, Bumper und die LEDs ACS_setStateChangedHandler(acsStateChanged); // Main loop while(true) { setLEDs(0b100100); //LEDs setzen setLEDs(0b111001); updateStatusLEDs(); // Prüfe, ob links eine Öffnung ist if (obstacle_left && obstacle_right) { // LEDs setzen setLEDs(0b001111); updateStatusLEDs(); // Rotiere wieder zurück in gerade Position rotate(40, RIGHT, 90, BLOCKING); //LEDs setzen setLEDs(0b001001); updateStatusLEDs(); // Prüfe, ob vorne ein Hindernis ist if (obstacle_left && obstacle_right) { // LEDs setzen setLEDs(0b001111); updateStatusLEDs(); // Rotiere rechts rotate(40, RIGHT, 90, BLOCKING); //LEDs setzen setLEDs(0b111001); updateStatusLEDs(); // Prüfe, ob rechts ein Hindernis ist if (obstacle_left && obstacle_right) { // LEDs setzen setLEDs(0b001111); updateStatusLEDs(); // Rotiere rechts rotate(40, RIGHT, 90, BLOCKING); //LEDs setzen setLEDs(0b111001); updateStatusLEDs(); } else { move(50, FWD, DIST_MM(250), BLOCKING);} } else { move(50, FWD, DIST_MM(250), BLOCKING);} } else { move(50, FWD, DIST_MM(250), BLOCKING);} } return 0; }
Danke schonmal!







Zitieren

Lesezeichen