Hallo
Wenn man stur die mSleep()s durch die Stopwatches ersetzt gewinnt man nichts:
Code:
// Lauflicht mit Stopwatch (blockierend)
#include "RP6RobotBaseLib.h"
int main(void)
{
initRobotBase();
startStopwatch1();
startStopwatch2();
startStopwatch3();
while(true)
{
setStopwatch1(0);
while(getStopwatch1() < 150);
setLEDs(0b001001);
setStopwatch2(0);
while(getStopwatch2() < 150);
setLEDs(0b010010);
setStopwatch3(0);
while(getStopwatch3() < 150);
setLEDs(0b100100);
task_RP6System(); // wird alle 3*150ms aufgerufen
}
return(0);
}
Der Vorteil der Stopwatches ist die nicht blockierende Anwendung:
Code:
// Lauflicht mit Stopwatch (nicht blockierend)
#include "RP6RobotBaseLib.h"
uint8_t step;
int main(void)
{
initRobotBase();
step=0;
startStopwatch1();
while(true)
{
if(getStopwatch1() > 150)
{
setStopwatch1(0);
step++;
if(step > 3) step=0;
if(step==0) setLEDs(0b000000);
if(step==1) setLEDs(0b001001);
if(step==2) setLEDs(0b010010);
if(step==3) setLEDs(0b100100);
}
task_RP6System(); // wird bei jedem Schleifendurchgang aufgerufen
}
return(0);
}
(beides nicht getestet!)
Gruß
mic
Lesezeichen