User manual

RP6 ROBOT SYSTEM - 3. RP6 CONTROL Library
3.1.1. Mikrocontroller initialisieren
void initRP6Control(void)
Wie schon von der RP6Lib bekannt, muss diese Funktion IMMER als erstes in der Main
Funktion aufgerufen werden! Sie heisst hier nur etwas anders...
Die Funktion initialisiert die Hardwaremodule des Mikrocontrollers auf dem RP6-M32.
Nur wenn Sie diese Funktion als erstes aufrufen, wird der Mikrocontroller korrekt ar-
beiten! Ein Teil wird zwar schon vom Bootloader initialisiert, aber nicht alles.
Beispiel:
1
2
3
4
5
6
7
8
9
10
11
#include "RP6ControlLib.h"
int main(void)
{
initRP6Control(); // Initialisierung – IMMER ALS ERSTES AUFRUFEN!
// [...] Programmcode...
while(true); // Endlosschleife
return 0;
}
Jedes Programm für das RP6 CONTROL M32 muss mindestens so ausschau-
en! Die Endlosschleife in Zeile 9 ist notwendig, um ein definiertes Ende des
Programms zu garantieren! Ohne diese Schleife könnte sich das Programm anders
verhalten wie erwartet! Genau wie mit dem Controller auf dem Mainboard!
3.1.2. Status LEDs
Die LEDs lassen sich ähnlich wie auf dem Mainboard steuern, allerdings sind nur vier
LEDs verfügbar und die Bezeichnungen sind etwas anders, da die LEDs an einem ex-
ternen Schieberegister angeschlossen sind, welches auch gleichzeitig das LC-Display
mit ansteuert. Das 8-Bit Schieberegister wird als „External Port“ bezeichnet.
Auch für das RP6-M32 gibt es die Funktion „setLEDs“:
void setLEDs(uint8_t leds)
Beispiel:
setLEDs(0b0000); // Dieser Befehl schaltet alle LEDs aus.
setLEDs(0b0001); // Und dieser schaltet LED1 an und alle anderen aus.
setLEDs(0b0010); // LED2
setLEDs(0b0100); // LED3
setLEDs(0b1010); // LED4 und LED2
Eine alternative Möglichkeit ist folgendes:
externalPort.LED1 = true; // LED1 im „External Port“ Register aktivieren
externalPort.LED2 = false; // LED2 im „External Port“ Register deaktivieren
outputExt(); // Änderungen übernehmen!
// Mit der Funktion outputExt() wird der Inhalt der Variablen externalPort
// an das Schieberegister gesendet – analog zu updateLEDs() aus der RP6Lib.
// Hier werden allerdings auch Änderungen der LCD Datenleitungen mitgesendet.
- 12 -