BASIC für Control I history menue Letztmalig dran rumgefummelt: 07.06.05 18:07:44
C-Control I/Plus BASIC arbeitet auf Compiler-Basis und stellt somit eine relativ einfach zu erlernende Programmiersprache dar, welche auch einen mäßig schnellen Referenzcode erzeugt. Schneller allerdings ist der Assembler des Zielprozessors. In diesem Falle des MC68HCO5B6. Zielplattform für den aufgeführten BASIC-Dialekt ist ausschließlich die C-Control I/Plus.

C-Control I Main Unit

C-Control I BASIC

... das geht aber auch mit C-Control Plus

 
1. Control I/ BASIC-Befehlsliste
2. Oberfläche und Upload zur Maschine
3. BASIC-Programmierung
4. C-Control-Roboter
C-Cotrol im Web
Alternativen zur Programmierung der Control I Main Unit:

1. C-Control I/Plus BASIC-Befehlsliste history menue scroll up
  allgemeine Befehlsnotation Bedeutung Anwendungsbeispiel
ABS(x) Absolutbetrag von x, x: Term y =ABS(-1)
AD[i] spezifiziert einen A/D-Port bei DEFINE
i: 1...8
DEFINE poti AD[1]
AND logische und bitweise UND-Verknüpfung if (x<0) AND (y<0) ...
y = x AND &H7F
APPEND Datei öffnen zum Anhängen von Daten OPEN# FOR APPEND
BAUD rate  Übertragungsrate der ser. Schnittstelle stellen
rate: Konstante
BAUD R2400 
BEEP t,d,p einen Ton ausgeben,
t: Ton = 250000/Frequ.
d: Dauer = d * 20ms
p: Pause = p * 20ms
BEEP 400,25, 10
BIT[i] spezifiziert ein Userbit bei DEFINE
i: 1...192
DEFINE flag BIT[16]
BYTE[i] spezifiziert ein Userbyte bei DEFINE,
i: 1...24
DEFINE x BYTE[1]
BYTEPORT[i] spezifiziert einen 8-Bit-Digitalport bei DEFINE,
i: 1...2
DEFINE leds BYTEPORT[l] 
&B... Angabe einer Binärzahl &101010000
CLOSE# Datei schließen CLOSE#
DAY Tag-Wert der Echtzeituhr DAY = 1
PRINT DAY
DA[i] spezifiziert einen D/A-Port bei DEFINE,
i: 1...2
DEFINE v DA[2] 
DEACT p deaktiviert einen Digitalport,
p: Portvariable
DEACT led 
DEFINE Definition eines Bezeichners für einen Port, eine
Variable oder eine Konstante
DEFINE sensorAD[1]
DEFINE flag BIT[1]
DEFINE limit 1000 
DOW Wochentag-Wert der Echtzeituhr IF DOW=1 THEN PRINT "MONTAG"
ELSE Alternativzweig bei einer bedingten Programmausführung IF x=0 THEN y=0 ELSE y=5 
END Programmende IF x THEN END
EOF Test auf Dateiende beim Auslesen der Datei IF EOF THEN GOTO xxx
FILEFREE Test auf freien Speicherplatz beim Schreiben der Datei IF FILEFREE THEN GOTO xxx 
FOR Programmschleifen FOR i=1 TO 10
FREQ Abfrage der Frequenz am DCF77-Eingang x = FREQ 
GET v Byte von der seriellen Schnittstelle lesen,
v: Variablenbezeichner
GET zeichen 
GOSUB I Sprung zu einer Unterroutine
1: Label-Bezeichner
GOSUB proc 
GOTO 1 Programmsprung,
1: Label-Bezeichner
GOTO start
&H... Angabe einer Hexzahl &H1FFE
HOUR Stunden-Wert der Echtzeituhr PRINT HOUR 
IF Bedingte Programmausführung, nach IF folgt der Bedingungsterm IF x < y THEN GOTO ready 
INPUT v  Einlesen eines Zahlenwertes von der ser. Schnittstelle,
v: Variablenbezeichner
INPUT x 
INPUT# v Einlesen eines Zahlenwertes aus der Datei,
v: Variablenbezeichner
INPUT# x 
LOOKTAB t,i,v Laden eines Wertes aus einer Tabelle,
t: Tabellenbezeichner 
i: Index
v: Variablenbezeichner
LOOKTAB kty, mess, temp
MAX(x,y) Ermittlung des größeren Wertes,
x,y: Terme
z = MAX(x, 10)
MIN(x,y) Ermittlung des kleineren Wertes,
x,y: Terme
z = MIN(x, 10) 
MINUTE Minuten-Wert der Echtzeituhr PRINT MINUTE 
MOD Operator für Modulodivision  = 10 MOD 3 
MONTH Monats-Wert der Echtzeituhr PRINT MONTH
NAND logische und bitweise UND-Verknüpfung mit anschließender Negation x = a NAND b 
NOR logische und bitweise ODER-Verknüpfung mit anschließender Negation x = a NOR b
NOT logische und bitweise Negation y = NOT x
OFF vordefinierte Konstante für 0 led=OFF 
ON vordefinierte Konstante für &HFFFF led=ON 
ON x GOSUB Unterroutinenaufruf in Abhängigkeit von x ON sel GOSUB pl, p2, p3
ON x GOTO Programmsprung in Abhängigkeit von x ON sel GOTO pl, p2, p3
OPEN# FOR m Datei mit Modus m öffnen,
m: APPEND, WRITE oder READ
OPEN# FOR WRITE 
OR logische und bitweise ODER-Verknüpfung x = a OR b
PAUSE t Programmunterbrechung für t*20 Millisekunden PAUSE 50
PORT[i] spezifiziert einen Digitalport bei DEFINE,
i: 1...16
 
PRINT x Ausgabe von Werten und Texten über die serielle Schnittstelle,
x: Term oder Text in Anführungszeichen
PRINT "A=", a, "B="; b 
PRINT# x Aufzeichnen eines Wertes in der Datei,
x: Term
PRINT# a 
PULSE p Ausgabe eines Pulses an einem Digitalport, 
p: Portvariable
PULSE clock
PUT x Ausgabe eines Bytes über die serielle Schnittstelle,
x: Term
PUT ch
RAND Integer-Zufallszahl  generieren x = RAND
RANDOMIZE x Zufallszahlengenerator neu initialisieren RANDOMIZE TIMER
RETURN Rückkehr aus einer Unterroutine RETURN
RXD Test, ob ein Byte seriell empfangen wurde IF RXD THEN GET ch
READ Datei öffnen zum Auslesen von Daten OPEN# FOR READ
SECOND Sekunden-Wert der Echtzeituhr PRINT SECOND
SHL Operator für bitweises Linksschieben a = a shl 2
SHR Operator für bitweises Rechtsschieben a = a shr 2
SLOWMODE m Prozessortakt/16,
m: ON oder OFF
SLOWMODE ON 
STEP Angabe der Schrittweite bei der FOR-Schleife FOR i=100 TO 0 STEP -5 
SYS a Aufruf eines Systemprogramms,
a: Adresse
SYS &H101 
SYSCODE Angabe von Systemcodes oder einer S 19-Datei SYSCODE "TEST.S19" 
SYSEND Abschluss bei mit SYSCODE direkt eingegebenen Bytes SYSCODE &H81 SYSEND
TABLE Definition einer Datentabelle, direkt oder per Tabellendatei TABLE kty "KTYIO.TAB"
TABEND Abschluss bei mit TABLE direkt eingegebenen Werten TABLE tab 10 5 -3 TABEND
TIMER Abfrage des 20-ms Timers  x = timer
TO Angabe des Endwertes bei der FOR-Schleife FOR i=1 TO 10
TOG p Umschalten eines Digitalports,
p: Portvariable
TOG led
WORD[i] spezifiziert ein Userword bei DEFINE,
i: immer 1
DEFINE x WORD[1]
WORDPORT[i] spezifiziert einen 16-Bit-Digitalport bei DEFINE,
i: immer 1
DEFINE all WORDPORT[1]
WRITE Datei öffnen zum Schreiben neuer Daten
OPEN# FOR WRITE 
YEAR Jahr-Wert der Echtzeituhr  PRINT YEAR

2. C-Control I/-Plus history menue scroll up

 

C-Control/Plus
BASIC für C-Control


3. C-Control II history menue scroll up

 

 


4. C-Control-Roboter history menue scroll up