C Control I Unit-M 2.0 BASIC 5 Vdc Inputs / outputs 16 x digital I/Os/8 x analog or digital I/Os/2 x analogue outputs (s 198822 Datenbogen

Produktcode
198822
Seite von 37
 
28
Mit dem Befehl  
 
PULSE portvar 
 
wird ein Puls von einigen Mikrosekunden Breite am mit portvar bezeichneten Port ausgegeben. Das 
ist beispielsweise nützlich zum Schalten extern angeschlossener flankengetriggerter 
Logikschaltkreise. Steht der Port vor Ausführung des PULSE Befehls auf low (=O), wird ein High-Puls 
(O-l-O), ansonsten ein Low-Puls (l-O-1) ausgegeben. Die Portvariable darf beim PULSE Befehl nur für 
einen einzelnen Digitalport stehen, nicht für einen Byte- oder Wordport und nicht für einen Extended 
Port 
 
Definition und Anwendung von Datentabellen  
Im Standard-BASIC dienen DATA-Zeilen zum Ablegen von konstanten Datenblöcken, auf die dann 
sequentiell zugegriffen werden kann. CCBASIC unterstützt keine DATA-Zeilen, bietet jedoch ein 
weitaus flexibleres Werkzeug zur Definition und zum Zugriff auf Datenblocks. Konstante Daten können 
in Form von Tabellen abgelegt werden. Jede Tabelle bekommt einen Bezeichner (tablename) 
zugewiesen und kann beliebig viele Einträge enthalten, soweit der Programmspeicher Platz bietet. 
Jeder Dateneintrag (Cx) wird als Integerwert abgelegt und belegt somit zwei Bytes. Dabei können die 
Daten direkt im Quelltext aufgeführt werden 
 
TABLE tablename CO C1 C2 C3 ... 
..c4 c5 . . . . Cn 
TABEND 
 
oder vom CCBASIC-Compiler aus einer externen Textdatei importiert werden 
 
TABLE tablename "tabfilename" 
 
Die Tabellendefinitionen müssen stets am Ende eines Programms, hinter dem END Befehl stehen, da 
die Daten nahtlos hinter den vorangehenden Codebytes im EEPROM- Speicherchip abgelegt werden. 
Die Programmabarbeitung darf nie über Tabellendaten laufen, da die Daten sonst als BASIC Befehle 
interpretiert werden würden, was sicher zum Absturz des Systems führt. Der Zugriff auf die 
Tabellendaten erfolgt mit dem Befehl 
 
LOOKTAB tablename,index,variabie 
 
tablename bezeichnet eine gültige Tabelle, für index kann ein beliebiger Term stehen und die variable 
bezeichnet die Speicherzelle, in der das Ergebnis abgespeichert werden soll. Der berechnete Wert 
des index-Terms darf nicht negativ sein und maximal N-l betragen, wenn die indizierte Tabelle N 
Einträge hat. Ergibt index den Wert 0, so wird CO in der angegebenen Variablen gespeichert, für 
index gleich 1 C1 und so weiter. Folgendes Beispiel gibt den Inhalt einer Tabelle seriell aus 
 
DEFINE value WORD 
DEFINE i BYTE 
FOR i = 0 to 3 
LOOKTAB mytab,i,value 
PRINT "mytab["; i; "]="; value 
NEXT 
END 
TABLE mytab 12 -20 0 1000 
TABEND 
 
Am Bildschirm des Terminalprogramms sollte erscheinen 
 
mytab[0]=12 
mytab[l]=-20 
mytab[2]=0 
mytab[3]=1000