iL-TROLL
der freundliche Professor

Die Programmiersprache iL-BAS16TRO
iL-TROLL wird in der Programmiersprache BASIC programmiert. Dass dies kein Nachteil ist kann unter dem Menüpunkt "Warum BASIC?" nachgelesen werden. Die Variante iL-BAS16TRO wurde von dem bekannten BASIC-Compiler iL_BAS16 abgeleitet. Er ist auf die Bedürfnisse der Microcontroller-Programmierung ausgelegt. Damit entfallen viele aus der PC-Programmierung bekannte BASIC-Befehle aber es kommen auch viele Neue hinzu. Nachfolgende Liste gibt einen Überblick. Darüberhinaus dienen viele Compilerschalter für eine flexible und effiziente Programmierung. Der Codegenerator ist auf die PIC-Controller optimiert und arbeitet, im Gegensatz zu anderen Compilern, ohne einen Zwischencode. Auf diese Weise wird der PIC-spezifische Befehlssatz optimal genutzt.

ADDELAY Zeit zum Laden des Haltekondensators
ADINP Analogwerte einlesen (8-Bit)
BINTOASC konvertiert 8- oder 16-Bit Variable in ASCII-Zeichenkette
BINTOBCD konvertiert 8- oder 16-Bit Variable in eine BCD-gepackte Zahl 
BINTODEC konvertiert 8- oder 16-Bit Variable in Zahlenkette 
BITPOS ordnet einer Zahl zw. 0 und 7 deren deren Bitposition zu
CLOCK Echtzeituhr mittels internem Timer TMR0 
CLOCK1 Echtzeituhr mittels internem Timer TMR1
CLRWDT setzt den internen Watchdog zurück (in Verbindung mit $WDTUSR und WDT_ON)
CURSOFF schaltet Cursor auf der LCD aus
CURSON schaltet Cursor auf der LCD ein
DATA definiert ein Datenfeld für Konstanten
DEC erniedrigt den Inhalt einer Variablen um 1
DELAY kurze Verzögerung (Auflösung 100us)
DOZE stromsparender Kurzschlaf
DTMFOUT erzeugt DTMF-Signale (Tonwahl beim Telefon)
EEDATA Diese Daten werden vom Programmiergerät in das interne EEPROM geschrieben
END Programmende, Controller geht in Stromsparmodus
ERR abfragen der internen Error-Variablen, z.B. Timeout, Overflow
FREQIN zählt die Anzahl der Impulse innerhalb einer bestimmten Zeit
FOR TO NEXT FOR-NEXT-Schleifen, bis zu 16 Schachtelungsebenen
GOSUB Sprung in ein Unterprogramm, bis zu 4 Ebenen
GOTO Sprung zu einer Programmmarke, keine Zeilennummern!
HIGH I/O-Pin wird Ausgang und auf High gesetzt
I2CDELAY verlangsamt die I2C-Kommunikation, z.B. bei langen Leitungen
I2CHARDS aktiviert das I2C-Hardwaremodul des PICs als SLAVE
I2CINIT initialisiert 2 Pins für die I2C-Kommunikation
I2CREAD lesen aus einem I2C-Baustein
I2CRD lesen aus einem I2C-Baustein ohne Generierung von START- bzw. STOP-Bedingung
I2CSLAVE Controller wird zu einem universellen Slavebaustein
I2CST generiert eine START-Bedingung
I2CSP generiert eine STOP-Bedingung
I2CWRITE Schreiben in einen I2C-Baustein
I2CWR schreiben in einen I2C-Baustein ohne Generierung von START- bzw. STOP-Bedingung
IF THEN ELSE bedingte Verzweigungen
INC erhöht den Inhalt einer Variablen um 1
INKEY 4x4 Tastaturmatrix abfragen, an gleichen Port wie LCD möglich (4x3)
INP I/O-Pin wird als Eingangspin definiert
INPUT gesamter Port (8-Bit) wird eingelesen
INTERRUPT erlaubt das Einklinken benutzerdefinierter Interrupts
INTEND markiert das Ende der Interruptservice-Routine
INTPROC markiert den Anfang der Interruptservice-Routine
LCDCHAR definieren von bis zu 8 eigenen Zeichen auf der LCD
LCDCLEAR LC-Anzeige löschen
LCDDELAY zur Anpassung des Timings
LCDINIT initialisiert eine LC-Anzeige mit HD44780 Controller (4-Bit)
LCDTYPE verschiedene Anschlussvarianten für LCDs (z.B. auch über 74LS164)
LCDWRITE schreibt Daten auf die LCD
LET Anweisung für eine Zuweisung (obligatorisch)
LOCATE Positioniert den Cursor an eine beliebige Stelle auf der LCD 
LOFREQ erzeugt Frequenzen bis ca. 2kHz
LOOKDN Tabellen lesen
LOOKUP Tabellenindex lesen
LOW I/O-Pin wird Ausgang und auf Low gesetzt
ON...GOSUB mehrfach bedingte Verzweigung
ON...GOTO mehrfach bedingte Verzweigung
OUTP I/O-Pin wird als Ausgang definiert
OUTPUT 8-Bits werden auf Port ausgegeben
PRINT zum Debuggen mittel einfachem Terminalprogramm
PULSIN misst die Pulsdauer
PULSOUT gibt einen Puls auf einem I/O-Pin aus
PWM erzeugt ein pulsweitenmoduliertes Signal, z.B. für Analogausgabe
RANDOM erzeugt eine Zufallszahl
RCTIME misst die Lade-/Entladezeit eines Kondensators, z.B. für Widerstandsmessungen
READ lesen der Daten aus dem EEPROM (nur für PICs mit eingebauten Daten-EEPROM)
READDATA liest ein Datenwert aus dem Datenfeld (nicht 10F20x, 12C5xx und 16C5x)
REM leitet eine Kommentarzeile ein
RES Pegel des I/O-Pins auf Low setzen
RESTORE setzt den Lesezeiger für READDATA an eine bestimmte Position (nicht 10F20x, 12C5xx und 16C5x)
RETURN Ende des Unterprogramms
REVERS I/O-Pin wird Ausgang und die aktuelle Information invertiert
SERIN liest Daten seriell ein
SEROUT gibt Daten seriell aus
SET Pegel des I/O-Pins wird auf High gesetzt
SETBAUD ändern der Baudrate bei interruptgesteuertem UART-Empfang
SLEEP Controller wird in den Sleepmodus versetzt
SOUND erzeugt Frequenzen zw. 1kHz und 20kHz
SPLAY (neu) verbesserter Ersatz für SOUND und LOFREQ
SWAP vertauscht die beiden Halbbytes in einer Variablen
TOGGLE Pegel des I/O-Pins wird invertiert
TRIS initialisiert das Datenrichtungsregister
TXDDELAY Pause zw. zwei Zeichen beim Senden mittels UART
WAIT verzögert den Programmablauf (kein Stromsparmodus)
WRITE schreibt Daten in das EEPROM (nur für PICs mit eingebautem Daten-EEPROM)



Seit  25 Jahren entwickeln und fertigen wir Hard- und Software nach ihren Wünsche
PIC is a Trademark of Microchip, Arizona
iL-TROLL ist ein Markenzeichen von Ing.Büro Lehmann, Hausach

.