Code:
#include "RP6RobotBaseLib.h"
#include "RP6ControlLib.h"
void runningLight(void)
{
static uint8_t runLight = 1;
static uint8_t dir;
if(getStopwatch4() > 100)
{
setLEDs(runLight);
if(dir == 0)
runLight <<= 1;
else
runLight >>= 1;
if(runLight > 7 )
dir = 1;
else if (runLight < 2 )
dir = 0;
setStopwatch4(0);
}
}
void takeABreakAfterSomeTime(void)
{
static uint8_t putScreenOnceOnly;
if(getStopwatch5() > 24000)
{
clearLCD();
startStopwatch3();
startStopwatch4();
setStopwatch5(0);
sound(160,20,20);
sound(220,40,0);
}
else if(getStopwatch5() > 22000)
{
if(!putScreenOnceOnly)
{
showScreenLCD("ok lass uns", "gehen!");
putScreenOnceOnly = 1;
}
}
else if(getStopwatch5() > 16000)
{
if(isStopwatch1Running())
{
stopStopwatch1();
stopStopwatch2();
showScreenLCD("ich moechte", "ein shirt brechen!");
putScreenOnceOnly = 0;
sound(220,40,20);
sound(160,40,0);
}
}
}
void bumpersStateChanged(void)
{
writeString_P("\nBumper Status hat sich geaendert:\n");
if(bumper_left)
writeString_P(" - Linker Bumper gedrueckt!\n");
else
writeString_P(" - Linker Bumper nicht gedrueckt.\n");
if(bumper_right)
writeString_P(" - Rechter Bumper gedrueckt!\n");
else
writeString_P(" - Rechter Bumper nicht gedrueckt.\n");
}
int main(void)
{
initRobotBase();
initRP6Control();
initLCD();
BUMPERS_setStateChangedHandler(bumpersStateChanged);
setLEDs(0b111111);
powerON();
moveAtSpeed(50,50);
//getLeftSpeed(50,30)
//getRightSpeed(30,50)
startStopwatch1();
startStopwatch2();
startStopwatch3();
startStopwatch4();
setLEDs(0b000000);
while(true)
{
if(getStopwatch1() > 4000)
{
move(60, FWD, DIST_MM(300), true); // 30cm Vorwärts fahren
rotate(30, LEFT, 180, true); // um 180° nach links drehen
move(60, FWD, DIST_MM(300), true); // 30cm Vorwärts fahren
rotate(30, LEFT, 90, true); // um 90° nach links drehen
move(60,FWD,DIST_MM(200), true);
rotate(30, RIGHT, 45, true);
setStopwatch1(0);
}
if(getStopwatch2() > 300)
{
writeString_P("\nADC Lichtsensor Links: ");
writeInteger(adcLSL, DEC);
writeString_P("\nADC Lichtsensor Rechts: ");
writeInteger(adcLSL, DEC);
writeString_P("\nADC Akku: ");
writeInteger(adcBat, DEC);
writeChar('\n');
if(adcBat < 600)
writeString_P("Warnung! Akku ist bald leer!\n");
setStopwatch2(0);
}
if(getStopwatch3() > 300)
{
showScreenLCD("################", "################");
mSleep(1500);
showScreenLCD("Ich bin RP6 ein", "inilligenter Roboter");
mSleep(2500);
shwoScreenLCD("Dies war ein Test");
mSleep(5000);
setStopwatch3(0);
}
task_motionControl();
task_ADC();
task_Bumpers();
runLCDText();
runningLight();
}
return 0;
}
könnte mir einer sagen was an den programm falsch ist ? =(
Lesezeichen