TABLE

BASIC2006

Die TABLE Definition ist eine einfache Art um konstante Datenblöcke (Tabellen) in den Programmcode einzubetten. Jeder Table-Definition wird ein einmaliger Name zugewiesen. Jeder in einer Tabelle eingebettete Zahlenwert ist 16 Bit groß (Typ Word).

Beachten Sie, dass ein mit TABLE definierter Datenblock an jeder Stelle des Programms geschrieben werden kann und beim Compilieren der Datenblock nicht übersprungen wird. Dh. die Werte der Tabelle werden vom Compiler direkt in Tokens übersetzt, die dann vom Mikrocontroller interpretiert werden können. Achten Sie daher darauf, dass der Controller einen solchen Datenblock nicht unabsichtlich ausführt. Nutzen Sie hierfür Sprungmarken und platzieren Sie Datenblöcke immer am Programmende (siehe Beispiel unten).

Mit der LOOKTAB-Anweisung kann dann vom Programm ein beliebiger Wert aus der statischen Tabellen gelesen werden.

Syntax:

 TABLE Bezeichner
   [Zahl1 Zahl2 Zahl3]
 END TABLE

Bezeichner: Erforderlich, beliebiger Bezeichner.

[Zahl1 ... ]: Optional, Konstanten bzw. Zahlen getrennt durch Leerzeichen oder Komma.

Bemerkung:

Es können auch externe Text-Dateien mit Zahlenwerte in eine Tabelle eingefügt werden (siehe IMPORT). In der Text-Datei müssen die Werte gemäß der Syntax entweder durch Leerzeichen, Komma oder Zeilenumbruch getrennt sein

Beispiel:

 Define datavar as byte
 Define i as byte
 Define Port1 as Port[1]

 #StartLoop
 For i = LBound(minutes) to UBound(minutes)  
   Looktab(minutes, i, datavar) 
   if datavar = minute then
     Print "Licht an"
     Pulse Port1
   end if  
 next  

 ' Vor der Tabelle MINUTES muss ein Sprung erfolgen
 ' sonst könnte der Controller die Werte der
 ' Tabelle als Befehle interpretieren, was zu einem
 ' Programmabsturz führen kann

 goto StartLoop

 table minutes
   2 8 12 13 18 25 26 29
 end table

Beispiel Verwendung externer Datei:

 table minutes
    import "test.tab"
 end table

Siehe auch: UBOUND, LBOUND, LOOKTAB

© 2004 - 2012 tappertzhofen. Alle Reche vorbehalten.
Seitenanfang | Impressum