Hallo Filou89,
danke für die Hinweise!
1.
Zitat:
mit task_RP6System(); rufst du alle anderen Tasks auch auf. Du machst das also 2 mal.. (langsam)
Das ist mir jetzt wirklich peinlich, das hatte ich schonmal richtig, das habe ich jetzt auch sofort verbessert/ausgebessert.
2.
Zitat:
fahrenFunktion();
if (GetStop...>3500) wirst du garnie haben, da sie nirgends im Programm gestartet wurde. (Hast du sicher aus der Anleitung kopiert
Stimmt ;-) Aber auch hier ist es nicht mehr aktuell. Ich hatte die zeit auf 500 gestellt, besser?
3.
Zitat:
setzen der statusLeds: Wenn du das Programm so laufen lässt, werden die Leds nur die Obstacle-Meldungen anzeigen, da die Bumper-meldungen gerade wieder überschrieben werden.
Das Problem ist aber genau andersrum. Die LED´s blinken nicht auf wenn ein Hinderniss erkannt wird, nur wenn die Bumper aktiviert werden (ist glaube ich doch so "fest" einprogrammiert, oder?
So, nun zu dem Teil, den ich noch immer nicht ganz kapiert habe.:
Zitat:
Du siehst, das 3. Argument (uint16_t angle) ist eine Ganze Zahl,Integer.
Deshalb kannst du nicht schreiben ....,(obstacle_left=false),.... (wäre ja sowieso eine Zuweisung, kein Vergleich)
Ok, das leuchtet mir jetzt ein, thx!
Zitat:
Das machst du mit:
setMotorDir(uint8_t left_dir, uint8_t right_dir);
Wann bzw. wo muss ich das einbauen? Hier:
Code:
// Hindernis links
if(obstacle_left){
setMotorDir(30,60);
//rotate(50, RIGHT, (obstacle_left = false), true); // dreht sich so lange bis der linke Sensor kein Hinderniss mehr hat
}
Also, ich verstehe (eigentlich) ganz gut was du meinst, aber ich weiß noch nicht, wie bzw. wo ich die "setMotorDir(uint8_t left_dir, uint8_t right_dir);" Funktion und "moveAtSpeed(uint8_t desired_speed_left, uint8_t desired_speed_right)" einsetzten soll.
Sorry, bin doch noch sehr im Anfangsstadium ;-)
Beste Grüße
Crystal Eye