Arexx RP6 V2 Build your own robot kit RP6 V2 User Manual

Product codes
RP6 V2
Page of 141
RP6 ROBOT SYSTEM -  4. Programmierung des RP6
4.4.9. Arrays, Zeichenketten, Zeiger ...
Es gäbe noch viel mehr Sprachelemente und Details zu besprechen, aber hier müssen 
wir auf die angegebene Literatur verweisen. (Infos zu Zeigern finden Sie z.B. hier:
Das meiste davon braucht man auch gar nicht um die Beispielprogramme verstehen 
zu können. Hier geben wir nur ein paar Beispiele und Begriffe an, um einen Überblick 
darüber zu geben. Eine sonderlich ausführliche Beschreibung ist das allerdings nicht. 
Zunächst zu Arrays. In einem Array (=“Feld“) kann man eine vorgegebene Anzahl von 
Elementen eines bestimmten Datentyps speichern. So könnte man z.B. folgenderma-
ßen ein Array mit 10 Bytes anlegen: 
uint8_t unserTollesArray[10];
Schon hat man quasi 10 Variablen mit gleichem Datentyp deklariert, die man nun 
über einen Index ansprechen kann: 
unserTollesArray[0] = 8;
unserTollesArray[2] = 234;
unserTollesArray[9] = 45;
Jedes dieser Elemente kann man wie eine normale Variable behandeln. 
Achtung: Der Index startet immer bei 0 und wenn man ein Array mit n Elementen an-
gelegt hat, geht der Index von 0 bis n-1 !  Also bei 10 Elementen z.B. von 0 bis 9. 
Arrays ist sehr nützlich wenn man viele Werte gleichen Typs speichern muss. Man 
kann diese auch in einer Schleife der Reihe nach durchlaufen:
uint8_t i;
for(i = 0; i < 10; i++)
writeInteger(unserTollesArray[i],DEC);
So werden der Reihe nach alle Elemente im Array ausgegeben (hier natürlich ohne 
Trennzeichen oder Zeilenumbrüche dazwischen). Analog dazu kann man auch ein Ar-
ray in einer Schleife mit Werten beschreiben.
Ganz ähnlich sind Zeichenketten in C aufgebaut. Normale Zeichenketten sind stets im 
ASCII Code kodiert, wofür man pro Zeichen ein Byte benötigt. Zeichenketten sind in C 
nichts anderes als Arrays, die man eben als Zeichenketten interpretieren kann. Man 
kann z.B. folgendes Schreiben:
uint8_t eineZeichenkette[16] = "abcdefghijklmno";
Und schon hat man die in Klammern stehende Zeichenkette im Speicher abgelegt.
Wir haben weiter oben  auch schon ein paar UART Funktionen verwendet, die Zeichen-
ketten über die serielle Schnittstelle ausgeben. Die Zeichenketten sind dabei nur Ar-
rays. Der Funktion wird allerdings kein komplettes Array übergeben, sondern nur die 
Adresse des ersten Elements in dem Array. Die Variable die diese Adresse enthält 
nennt man „Zeiger“ (engl. Pointer). Um einen Zeiger auf ein bestimmtes Array Ele-
ment zu erzeugen schreibt man &unserTollesArray[x] wobei x das Element ist, auf das 
der Zeiger zeigen soll. Diese Schreibweise wird ab und an in den Beispielprogrammen 
verwendet. Beispielsweise so:
uint8_t * zeigerAufEinElement =  &eineZeichenkette[4]; 
Das brauchen Sie aber erstmal noch nicht um die Programmbeispiele zu verstehen 
und eigene Programme zu schreiben. Wird hier nur der Vollständigkeit halber erwähnt.
- 76 -