User manual
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
Beispiel 1: „Hello World“-Programm mit LED Lauflicht
Verzeichnis: <RP6Examples>\RP6BaseExamples\Example_01_LEDs\
Datei: RP6Base_LEDs.c
Das Programm erzeugt Ausgaben auf der seriellen Schnittstelle, sie sollten den
Roboter also an den PC anschließen und sich die Ausgaben im Terminal der
RobotLoader Software ansehen!
Der Roboter bewegt sich in diesem Beispielprogramm nicht ! Sie können ihn also
z.B. auf einen Tisch neben dem Computer stellen.
Dieses Beispielprogramm gibt einen kurzen „Hello World“ Text über die serielle
Schnittstelle aus und anschließend wird ein Lauflicht ausgeführt.
Eine kleine Besonderheit bei dem Lauflicht ist der „shift left“ Operator, der auch schon
weiter oben vorgekommen ist, ohne das wir diesen genauer erklärt haben:
1
2
3
4
setLEDs(runningLight); // LEDs setzen
runningLight <<= 1; // Nächste LED (shift-left Operation)
if(runningLight > 32) // Letzte LED?
runningLight = 1; // Ja, also wieder von vorn beginnen!
Das holen wir jetzt noch kurz nach. Mit einer shift left Operation, also „<<“ (Zeile 2)
kann man die Bits in einer Variablen um eine gegebene Anzahl von Stellen nach links
verschieben. Das geht natürlich auch nach rechts – mit dem shift right Operator „>>“.
Also verschiebt runningLight <<= 1; alle Bits in der Variable runningLight um eine Po-
sition nach links. Die obige Zeile ist übrigens nur eine Abkürzung für
runningLight = runningLight << 1;
genau wie man es z.B. mit += oder *= tun kann.
Die Variable runningLight hat zunächst den Wert 1, also ist nur Bit 1 in der Variablen
gesetzt. Mit jeder shift Operation wandert dieses Bit um eine Position nach links. Da
wir diese Variable verwenden um die LEDs zu setzen, resultiert dies in einem „Laufen-
den“ Lichtpunkt --> ein Lauflicht! Damit das menschliche Auge diesen Lichtpunkt auch
wahrnehmen kann, wird mSleep verwendet um 100ms Pause nach jedem Schleifen-
durchlauf zu erzeugen.
Ist Bit 7 in der Variablen runningLight gesetzt (also hat sie einen Wert > 32), müssen
wir wieder an den Anfang zurückspringen und nur Bit 1 setzen (Zeile 3+4).
Beispiel 2: Mehr von der seriellen Schnittstelle
Verzeichnis: <RP6Examples>\RP6BaseExamples\Example_02_UART_01\
Datei: RP6Base_SerialInterface_01.c
Das Programm erzeugt Ausgaben auf der seriellen Schnittstelle
Der Roboter bewegt sich in diesem Beispielprogramm nicht !
Hier demonstrieren wir die Verwendung der writeInteger und writeIntegerLength
Funktionen und geben ein paar Zahlenwerte in verschiedenen Formaten über die seri-
elle Schnittstelle aus.
Ausserdem wird hier die in Version 1.3 der RP6Lib neu eingeführte variable „timer“
demonstriert, die für Zeitmessungen mit einer Auflösung von 100µs verwendet wer-
den kann.
- 114 -