Also wirklich erklären kann ich das auch nicht:
Code:
#include "RP6RobotBaseLib.h" //bindet die RP6RobotBaseLib.h ein
int main (void)
{
initRobotBase(); //initialsiert den Robby
powerON(); //aktiviert die Encoder usw.
//fragt alle 50ms die Bumper ab und speichert den Wert in "bumper_left" und "bumper_right"
task_Bumpers();
while(1)
{
if(bumper_left != false) //wenn linker bumper betätigt...
{
setLEDs(0b111111); //schalte SL4, SL5 und SL6 ein
//moveAtSpeed(0,0); //Stop
//stop();
//powerOFF(); // abwürg
// folgender Code ist aus emergencyShutdown(0);
mleft_power = 0; // aktuelle Power
mright_power = 0;
OCR1AL = 0; // PWM auf null
OCR1BL = 0;
setLEDs(0b011111); //schalte SL6 aus
//while(!isMovementComplete()) // Weiterfahren bis Antriebe auf null
//task_RP6System();
mSleep(1500); //1,5 Sekunden warten
//powerON(); // und weiter
setLEDs(0b011011); //schalte SL4 SL5 ein
move(60,BWD,DIST_MM(300),NON_BLOCKING); //fahre 30cm Rückwärts
while(!isMovementComplete()) // Weiterfahren bis Ziel erreicht
task_RP6System();
mSleep(800); //... für 0,8 Sekunden
setLEDs(0b001001); //schalte SL4 ein
rotate(60,RIGHT,180,NON_BLOCKING); //um 180° nach Rechts drehen
while(!isMovementComplete()) // Weiterfahren bis Drehung fertig
task_RP6System();
}
else
{
setLEDs(0b000000); //schalte alle LEDs aus
changeDirection(FWD); //Motor Drehrichtung auf Vorwärts setzen
moveAtSpeed(80,80); //Fahre Vorwärts bis Bumper gedrückt wird
}
task_RP6System(); //fragt immer wieder die Encoder, ACS, Bumpers und Motorfunktionen ab
}
return 0;
}
(getestet)
Lesezeichen