User manual

202Compiler
© 2013 Conrad Electronic
Array Variablen
Wenn man hinter den Namen, bei der Variablendefinition in runden Klammern, einen Zahlenwert
schreibt, so hat man ein Array definiert. Ein Array legt den Platz für die definierte Variable mehrfach
im Speicher an. Bei der Beispieldefinition:
Dim x(10) As Integer
Wirdr die Variable x der 10-fache Speicherplatz angelegt. Den ersten Speicherplatz kann man mit
X(0) ansprechen, den zweiten mit x(1), den dritten mit x(2), ... bis x(9). Man darf bei der Definiti-
on natürlich auch andere Indexgrößen wählen. Die Limitierung ist nur der RAM Speicherplatz des C-
Control Pro.
Man kann auch mehrdimensionale Arrays deklarieren, in dem weitere Indizes, durch Komma ge-
trennt, bei der Variablendefinition angefügt werden:
Dim x(3,4) As Integer ' Array mit 3*4 Einträgen
Dim y(2,2,2) As Integer ' Array mit 2*2*2 Eintgen
Arrays dürfen in BASIC bis zu 16 Indizes (Dimensionen) haben. Der Maximalwert für einen Index
ist 65535. Die Indizes der Arrays sind immer nullbasiert, d.h., jeder Index beginnt mit 0.
Nur wenn die Compiler Option "Array Index Grenzen prüfen" gesetzt ist, findet während des Pro-
grammlaufs eine Überprüfung statt, ob die definierte Indexgrenze eines Arrays überschritten wurde.
Wird ansonsten der Index hrend der Programmabarbeitung zu gr, so wird auf fremde Variablen
zugegriffen, und die Chance ist gr, daß das Programm "abstürzt".
Tabellen mit vordefinierten Arrays
Seit Version 2.0 der IDE können Arrays mit Werten vorbelegt werden:
Dim glob(10) = {1,2,3,4,5,6,7,8,9,10} As Byte
Flash fglob(2,2)={10,11,12,13} As Byte
Sub main()
Dim loc(5)= {2,3,4,5,6} As Byte
Dim xloc(2,2) As Byte
xloc= fglob
End Sub
Da bei der C-Control Pro Unit mehr Flash als RAM Speicher zur Verfügung steht, kann man mit dem
Flash Befehlswort Daten definieren, die nur im Flashspeicher stehen. Diese Daten können dann
durch eine Zuweisung auf ein Array im RAM mit gleichen Dimensionen kopiert werden. Im Beispiel
ist dies: "xloc= fglob".
Direkter Zugriff auf flash Array Einträge