Arexx RP6 V2 Build your own robot kit RP6 V2 Manual Do Utilizador

Códigos do produto
RP6 V2
Página de 141
RP6 ROBOT SYSTEM -  4. Programmierung des RP6
void writeStringLength(char *data,  uint8_t length,  uint8_t offset);
Wenn man Texte mit einstellbarer Länge (length) und Anfangsposition (offset) ausge-
ben möchte, kann man diese Funktion verwenden.
Ein Beispiel:
writeStringLength("A
BCD
EFG", 3, 1);
Ausgabe: „BCD“
writeStringLength("ABCD
EF
G", 2, 4);
Ausgabe: „EF“
Diese Funktion belegt allerdings auch RAM Speicher und ist eigentlich nur für dynami-
sche Textausgabe gedacht (wird z.B. von writeIntegerLength verwendet...).
void writeInteger(int16_t number, uint8_t base);
Diese sehr nützliche Funktion gibt Zahlenwerte als ASCII Text aus! Wir haben ja oben 
schon gesehen, dass z.B. writeChar(65) ein 'A' ausgibt und nicht 65... 
Daher braucht man so eine Konvertierungsfunktion. 
Beispiel:
writeInteger(139, DEC); 
Ausgabe: „139“
writeInteger(25532, DEC); 
Ausgabe: „25532“
Man kann den gesamten 16bit Wertebereich mit Vorzeichen von -32768 bis 32767 
ausgeben. Wer größere Zahlen braucht, muss die Funktion anpassen oder besser eine 
eigene Funktion schreiben!
Was soll das „DEC“ als zweiter Parameter? Ganz einfach: Das bedeutet, das die Aus-
gabe als Dezimalzahl (engl. DECimal) erfolgt. Es gibt aber noch andere Zahlensysteme 
als das Dezimalsystem mit Basis 10. So kann man die Werte auch binär (BIN, Basis 
2), oktal (OCT, Basis 8) oder hexadezimal (HEX, Basis 16) ausgeben.
Beispiele:
writeInteger(255, DEC); 
Ausgabe: „255“
writeInteger(255, HEX); 
Ausgabe: „FF“
writeInteger(255, OCT); 
Ausgabe: „377“
writeInteger(255, BIN); 
Ausgabe: „11111111“
Das kann für viele Anwendungen sehr nützlich sein – vor allem HEX und BIN, denn 
hier sieht man sofort ohne Kopfrechnen wie die einzelnen Bits in dem Zahlenwert an-
geordnet sind. 
- 82 -