Arexx RP6 V2 Build your own robot kit RP6 V2 User Manual
Product codes
RP6 V2
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:
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-
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:
über einen Index ansprechen kann:
unserTollesArray[0] = 8;
unserTollesArray[2] = 234;
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:
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++)
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
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:
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-
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
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
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:
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 -