Arexx RP6 V2 Build your own robot kit RP6 V2 Manuale Utente

Codici prodotto
RP6 V2
Pagina di 141
RP6 ROBOT SYSTEM -  4. Programmierung des RP6
setStopwatchX(uint16_t preset)
Dieses Makro setzt Stopwatch X auf den übergebenen Wert.
Beispiel:
setStopwatch1(2324);
setStopwatch2(0);
setStopwatch3(2);
setStopwatch4(43456);
getStopwatchX()
Dieses Makro gibt den Wert von Stopwatch X zurück.
Beispiel:
if(getStopwatch2() > 1000) { ... }
if(getStopwatch6() > 12324) { ... }
4.6.4. Status LEDs und Bumper
void setLEDs(uint8_t leds)
Die 6 Status LEDs können Sie mit dieser Funktion steuern. Am übersichtlichsten ist es, 
der Funktion einen binären Wert zu übergeben (sieht immer so aus: 0bxxxxxx).
Beispiel:
setLEDs(0b000000); // Dieser Befehl schaltet alle LEDs aus.
setLEDs(0b000001); // Und dieser schaltet StatusLED1 an und alle anderen aus. 
setLEDs(0b000010); // StatusLED2
setLEDs(0b000100); // StatusLED3
setLEDs(0b001010); // StatusLED4 und StatusLED2
setLEDs(0b010111); // StatusLED5, StatusLED3, StatusLED2 und StatusLED1
setLEDs(0b100000); // StatusLED6
Eine alternative Möglichkeit ist folgendes:
statusLEDs.LED5 = true;   // LED5 im LED Register aktivieren
statusLEDs.LED2 = false;  // LED2 im LED Register deaktivieren
updateStatusLEDs();
  // Änderungen übernehmen!
Hier wird die StatusLED5 angeschaltet und StatusLED2  ausgeschaltet. Die anderen 
LEDs bleiben aber genau in dem Zustand in dem sie vorher gewesen sind! Das kann 
nützlich/übersichtlicher sein, wenn verschiedene LEDs aus verschiedenen Funktionen 
heraus geändert werden sollen o.ä..
Achtung: 
statusLEDs.LED5 = true; 
schaltet NICHT direkt LED5 an! Es wird nur ein Bit 
in einer Variablen gesetzt! Erst 
updateStatusLEDs(); 
schaltet LED5 dann wirklich an!
Zwei der Portpins an denen die LEDs angeschlossen sind, werden zusätzlich für die 
Bumper verwendet. Um die Bumper auszuwerten wird für sehr kurze Zeit der jeweilige 
Portpin auf Eingangsrichtung umgeschaltet und ausgewertet ob der Schalter geschlos-
sen ist. Dazu gibt es zwei vorgefertigte Funktionen. 
Diese Funktion 
uint8_t getBumperLeft(void)
wertet den linken Bumper aus und diese
uint8_t getBumperRight(void)
den rechten Bumper.
- 87 -