TABLE
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