Richtig! Das wäre dann die alternative Lösung:
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;
}
Noch etwas eleganter geht es über den Eventhandler:
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;
}
In diesem Fall wird die Funktion Bumper() nur noch dann aufgerufen, wenn das Ereignis auftritt, dass sich der Zustand der Bumpers geändert hat.
Lesezeichen