Richtig! Das wäre dann die alternative Lösung:
Noch etwas eleganter geht es über den Eventhandler:Code:#include "RP6RobotBaseLib.h" void Bumper() { if(bumper_left && bumper_right) { writeString("Beide Bumper gedrueckt!! \n"); } else if(bumper_left) { writeString("Linker Bumper gedrueckt!! \n"); } else if(bumper_right) { writeString("Rechter Bumper gedrueckt!! \n"); } } int main(void) { initRobotBase(); powerON(); writeString("Hallo! \n"); while(1) { task_Bumpers(); Bumper(); } return 0; }
In diesem Fall wird die Funktion Bumper() nur noch dann aufgerufen, wenn das Ereignis auftritt, dass sich der Zustand der Bumpers geändert hat.Code:#include "RP6RobotBaseLib.h" void Bumper() { // wie oben } int main(void) { initRobotBase(); powerON(); writeString("Hallo! \n"); BUMPERS_setStateChangedHandler(Bumper); // hier wird Bumper() an den Event gekoppelt while(1) { task_Bumpers(); } return 0; }







Zitieren

Lesezeichen