DonGru
15.02.2011, 18:26
Hallo zusammen,
ich hab seit ein paar Tagen einen RP6 und bin gerade dabei mich mit ihm bzw. der Robotertechnik im Allgemeinen anzufreunden.
Heute hab ich mich ein wenig mit der Stopwatch beschäftigt und dabei ein eigenartiges Phänomen festgestellt.
Hier ein einfaches Programm das die Stopwatch1 verwendet um alle 600ms die LEDS paarweise weiterlaufen zu lassen
#include "RP6RobotBaseLib.h" // The RP6 Robot Base Library.
int main(void)
{
initRobotBase();
writeString_P("Do some LED stuff!\n");
startStopwatch1();
uint8_t runningLight = 9;
uint16_t stopVal = 0;
while(true)
{
stopVal = getStopwatch1();
if (stopVal > 600)
{
writeInteger(getStopwatch1(), DEC);
writeChar('\n');
writeInteger(stopVal, DEC);
writeChar('\n');
writeChar('\n');
setLEDs(runningLight);
runningLight <<= 1;
if(runningLight > 36)
runningLight = 9;
setStopwatch1(0);
}
}
return 0;
}
Dazu habe ich mir eine Ausgabe eingebaut um den Wert der Stopwatch zu sehen.
Unerwarteterweise sieht jetzt der Output auf der Konsole so aus:
[READY]
Do some LED stuff!
601
601
601
601
601
601
601
601
601
601
512
767
512
767
512
767
601
601
das heißt der Wert den die Stopwatch liefert stimmt nicht immer mit dem Wert in der Variable (die eigentlich auch den Stopwatch-Wert haben sollte) überein.
Gibt es dafür eine plausible erklärung? :-k
danke schon mal im voraus,
Gruß,
Martin
ich hab seit ein paar Tagen einen RP6 und bin gerade dabei mich mit ihm bzw. der Robotertechnik im Allgemeinen anzufreunden.
Heute hab ich mich ein wenig mit der Stopwatch beschäftigt und dabei ein eigenartiges Phänomen festgestellt.
Hier ein einfaches Programm das die Stopwatch1 verwendet um alle 600ms die LEDS paarweise weiterlaufen zu lassen
#include "RP6RobotBaseLib.h" // The RP6 Robot Base Library.
int main(void)
{
initRobotBase();
writeString_P("Do some LED stuff!\n");
startStopwatch1();
uint8_t runningLight = 9;
uint16_t stopVal = 0;
while(true)
{
stopVal = getStopwatch1();
if (stopVal > 600)
{
writeInteger(getStopwatch1(), DEC);
writeChar('\n');
writeInteger(stopVal, DEC);
writeChar('\n');
writeChar('\n');
setLEDs(runningLight);
runningLight <<= 1;
if(runningLight > 36)
runningLight = 9;
setStopwatch1(0);
}
}
return 0;
}
Dazu habe ich mir eine Ausgabe eingebaut um den Wert der Stopwatch zu sehen.
Unerwarteterweise sieht jetzt der Output auf der Konsole so aus:
[READY]
Do some LED stuff!
601
601
601
601
601
601
601
601
601
601
512
767
512
767
512
767
601
601
das heißt der Wert den die Stopwatch liefert stimmt nicht immer mit dem Wert in der Variable (die eigentlich auch den Stopwatch-Wert haben sollte) überein.
Gibt es dafür eine plausible erklärung? :-k
danke schon mal im voraus,
Gruß,
Martin