Hi enni
Ich hab den RP6 auch zu Weihnachten bekommen \/ . Also mal zu deiner Frage :*Weiß Du wie man zwei Beispielprogramme in einem gemeinsamen
Programm zusammen fassen kann ?*
kopier einfach den Programmcode von dem anderen Programm den du haben willst und erstelle in dem neuen Programm eine Funktion(void DeineFunktion(void), muss man manchmal auch nicht machen wenn man die Funktion schon aus dem anderem Programm rauskopiert)in der du den Programmcode Teil einfügst. Die Funktion rufst du dann je nachdem ob sie die ganze Zeit ausgeführt werden soll oder nur einmal, entweder in die main-Endllosschleife ein oder einfach irgendwo in main nach der initRobotBase() Funktion.
Hier mal ein Programm wo der RP6 im Kreis fährt und ein Lauflicht veranstaltet:
Code:
#include "RP6RobotBaseLib.h"
void bumpersStateChanged(void) //Falls der Roboter wo dagegenfährt
{
if(bumper_left || bumper_right)
{
moveAtSpeed(0,0); // stop moving!
setLEDs(0b010000);
startStopwatch1();
}
}
void blink(void)
{
if(getStopwatch1() > 500) // 500ms
{
statusLEDs.LED2 = !statusLEDs.LED2;
statusLEDs.LED5 = !statusLEDs.LED5;
updateStatusLEDs();
setStopwatch1(0);
}
}
/*****************************************************************************/
// Main:
int main(void)
{
initRobotBase();
setLEDs(0b111111);
mSleep(1500);
setLEDs(0b100001);
BUMPERS_setStateChangedHandler(bumpersStateChanged);//Der Bumper Eventhandler
powerON();
changeDirection(FWD);
uint8_t runningLight; // Die Variable Lauflicht
moveAtSpeed(80,10);
while(true)
{
setLEDs(runningLight); // hier startet die Lauflicht Funktion aus RP6Base_LEDs.c
runningLight <<= 1;
if(runningLight > 32)
runningLight = 1;
mSleep(100); // und hier endet sie.
blink();// Das ist die Funktion das der Roboter stoppt wenn er wo dagegenfährt
task_RP6System();//
}
return 0;
}
mfg Panzerfan
P.S:
Das Programm ist nicht getestet(weil meine Akkus leer sind und sie grad aufladen) und auch nicht wirklich durchdacht also verzeiht mir wenn was nicht stimmt.
Lesezeichen