BASCOM Befehlsübersicht

BASCOM verwendet eine Basic ähnliche Skriptsprache, die leicht zu erlernen ist. Aber, wie in jeder Programmiersprache, bedarf es doch einiger Grundbefehle, die man kennen sollte. Diese Befehle findet man auch in unseren Projekten.

Befehl Kommentar
1WIRECOUNT() Übergibt die Anzahl von angeschlossenen 1-Wire Devices
1WRESET Reset des 1-Wire Busses
1WREAD() Lesen von Daten vom 1-Wire Bus
1WSEARCHFIRST() Lesen der ersten Device ID vom 1-Wire Bus
1WSEARCHNEXT() Lesen der nächsten Device ID vom 1-Wire Bus
1WVERIFY Verifiziert, ob eine Device ID am 1-Wire Bus gefunden wird
1WWRITE Schreiben von Daten zum 1-Wire Bus
ABS() Übergibt den Absolutwerte einer Variablen (Integer oder Long)
ACOS() Übergibt den arccos einer Singlevariablen in rad zurück
ADR, ADR2 Erzeugt Label Adressen
ALIAS Alias für Variablennamen
ASC() Weist einer numerischen Variablen den ASCII Wert des ersten Zeichen eines Strings zu
ASIN() Übergibt den aresin einer Singlevariablen in rad zurück
ATN() Übergibt den aretan einer Singlevariablen in rad zurück
ATN2() Übergibt den arctan einer Singlevariablen in rad über vier Quadranten zurück
BASE64DEC() Konvertiert Base-64 Daten
BASE64ENC() Konvertiert Base-64 Daten zurück
BAUD, BAUDL Baudrate für die Hardware UART
BCD() Konvertiert numerische Variable im BCD Format in String
BIN() Konvertiert numerische Variable in binären String
BIN2GRAY() Übergibt den Gray-Code einer numerischen Variablen
BINVAL() Konvertiert binären String in numerische Variable
BITS Setzt Bits
BITWAIT Warten bis ein Bit gesetzt oder zurückgesetzt ist
BLOAD Schreibt ein File ins SRAM
BOX() Erzeugt eine gefüllte Box auf einem Grafikdisplay
BOXFILL() Erzeugt eine gefüllte Box auf einem Grafikdisplay
BSAVE Schreibt SRAM in ein File
BUFSPACE() Ermittelt den freien Speicher im seriellen Buffer
BYVAL Übergabe einer Variablen durch ihren Wert
CALL Aufruf und Ausführung einer Subroutine
CHECKSUM() Übergibt die Byte-Checksumme eines Strings
CHR() Konvertiert eine Bytevariable oder Konstante in ein Zeichen
CIRCLE Zeichnet einen Kreis im Grafik-LCD
CLEAR Löschen eines seriellen Buffers
CLS Löschen eines angeschlossenen LCDs
CLOCKDIVISION Setzt den Clockteiler bei megaAVRs
CLOSE Schließt einen Kommunikationskanal
CLOSESOCKET Schließt eine Socketverbindung
CONFIG Konfiguriert Hardware
CONST Deklariert eine Konstante
cos() Übergibt den Cosinus einer Singlevariablen
COSH() Übergibt den Cosinus Hyperbolicus einer Singlevariablen
COUNTER0, COUNTER1 Zugriff auf interne Counter/Timer-Register
CPEEK() Liest ein Byte aus dem Programmspeicher
CPEEKH() Liest ein Byte aus den oberen 64 KByte des Programmspeichers
CRC8() Übergibt die CRC8 Checksumme einer Bytefolge
CRC16 Übergibt die CRC16 Checksumme einer Bytefolge
CRC16UNI Übergibt die CRC16 Checksumme einer Bytefolge
CRC32() Übergibt die CRC32 Checksumme einer Bytefolge
CRYSTAL Ändert die Baudrate während der Runtime
CURSOR Setzen der Attribute des LCD Cursors
DATA Speichert Konstanten in SRAM oder EEPROM
DATE Übergibt einen Datumswert
DATE$ Variable und Formatierung für das Datum
DAYOFWEEK() Übergibt den Wochentag
DAYOFYEAR() Übergibt den Tag im Jahr
DGB Sendet Debuginformationen zur Hardware-UART
DCF77TIMEZONE() Übergibt den Offset zur Greenwich Zeit
DEBOUNCE Entprellt eine an ein Pin angeschlossene Taste
DECR Dekrementiert (Subtraktion von Eins) eine Variable
DECLARE Deklariert eine Funktion oder eine Subroutine
DEFBIT, DEFBYTE, DEFINT, DEFLNG, DEFWORD Deklariert alle nicht dimensionierten Variablen, die mit dem gleichen Zeichen beginnen, als entsprechenden Typ
DEG2RAD Konvertiert einen Winkel von Grad in Radian
DEFLCDCHAR Definiert ein anwendungsspezifisches LCD Zeichen
DELAY Unterbricht die Programmabarbeitung für ca. 1 ms
DIM Deklariert und dimensioniert eine Variable im SRAM (default), XRAM oder EF PROM (ERAM)
DIR() Gibt den Filenamen zurück
DISABLE Sperrt einen Interrupt
DISKFREE() Gibt den freien Speicherplatz zurück
DISKSIZE() Gibt die Grösse des Diskspeichers zurück
DISPLAY Schaltet das Display ein oder aus
DO. ..LOOP Wiederholt eine Folge von Instruktionen bis eine Bedingung erfüllt (True) ist. Eine DO-LOOP wird mindestens einmal durchlaufen
DRIVECHECK() Meldet, ob das CF Drive zur Benutzung fertig ist
DRIVEGETIDENTITY() Übergibt die Parameter des CF
DRIVEINIT() Drives Initialisierung des CF Drives und Reset
DRIVERESET() Reset des CF Drives
DRIVEREADSECTOR() Lesen eines Sektors (512 Bytes) vom CF Drive
DRIVEWRITESECTOR() Schreiben eines Sektors (512 Bytes) zum CF Drive
DTMFOUT Sendet einen DTMF Tone zum Comparel Ausgang von Timer1
ECHO Schaltet das Echo bei INPUT ein oder aus
ENABLE Erlaubt einen spezifischen Interrupt
ENCODER() Lesen von Impulsen von einem Encoder
END Beendet das laufende Programm. Alle Interrupts werden gesperrt
EOF() Übergibt den End-of-File Status
ERR Interne Errorvariable, im Fehlerfall = 1
EXIT Austritt aus FOR-NEXT, DO-LOOP, WHILE-WEND, Subroutine oder Funktion
EXPO Übergibt den Wert exp(x)
FILEDATE() Übergibt das Filedatum
FILEDATETIME() Übergibt das Datum & Zeit des Files
FILELEN() Übergibt die Filegrösse
FILETIME() Übergibt die Filezeit
FIX() Übergibt für positive Werte den nächst niedrigeren und für negative den nächst höheren ganzzahligen Wert
FLUSH Schreibt den Bufferinhalt ins File
FOR … NEXT Wiederholt eine Folge von Instruktionen bis zu einem Endwert. Die Indexvariable kann „inkrementiert (TO) oder dekrementiert (DOWNTO) werden. Die Schrittweite kann optional festgelegt werden (STEP)
FORMAT() Formatierung eines numerischen Strings
FOURTHLINE Setzt den Cursor an den Beginn der vierten Zeile des LCDs
FRAC() Übergibt die Nachkommastellen einer Singlevariablen
FREEFILE() Übergibt eine freie Filenummer
FUNCTION END FUNCTION Definiert eine Funktion
FUSING() Stringformatierung einer Singlevariablen
GET Liest ein Byte vom UART (HW, SW) bzw. Daten von einem geöffneten File in Binary Mode
GETADC() Liest einen Kanal des ADU (wenn ADU vorhanden)
GETATKBD() Abfrage einer PC AT Tastatur
GETATKBDDRAW() Liest eine Taste von einem PC-AT-Keyboard
GETDSTIP() Abfrage der IP Adresse
GETDSTPORT() Abfrage des Ports
GETKBD() Abfrage einer 4×4 Tastaturmatrix
GETRC() Liest eine RC-Zeitkonstante von einem Portpin
GETRC5() Liest eine RC5 codierte Pulsfolge von einem IR Sensor
GETSOCKET() Erzeugt ein Socket für TCP/IP Kommunikation
GETTCPREGS() Liest ein W3100A Register
GLCDCMD Sendet ein Kommandobyte zu einem SED-Grafik-LCD
GLCDDATA Sendet ein Datenbyte zu einem SED-Grafik-LCD
GOSUB Sprung zu einer Subroutine
GOTO Sprung zu einem Label
GRAY2BIN() Übergibt den numerischen Wert eines Gray-Codes
HEX() Konvertiert numerische Variable in Hexadezimal-String
HEXVAL() Konvertiert einen Hexadezimal-String in eine numerische Variable
HIGHO Ermittelt das höchstwertige Byte (MSB) einer Variablen
HIGHW() Ermittelt das höchstwertige Word (MSW) einer Longvariablen
HOME Setzt den Cursor an den Beginn der ersten Zeile des LCDs
I2CINIT Initialisiert den I2C Bus
I2CRECEIVE Empfängt Daten vom I2C Bus
I2CSEND Sendet Daten zum I2C Bus
I2CSTART Erzeugt eine I2C Startbedingung
I2CSTOP Erzeugt eine I2C Stoppbedingung
I2CRBYTE Empfängt ein Byte vom I2C Bus
I2CWBYTE Sendet ein Byte vom I2C Bus
IDLE Versetzt den Prozessor in den IDLE Mode, d.h. der Systemtakt wird von der CPU aber nicht von der Peripherie abgeschaltet. Der IDLE Mode wird durch In¬terrupt (Timer/Counter, serielle Schnittstelle) oder Reset verlassen
IF THEN ELSE ENDIF Bedingte Programmverzweigung
INCR Inkrementiert (Addition von Eins) eine Variable
INITFILESYSTEM() Initialisiert das CF Filesystem
INITLCD Initialisiert ein angeschlossenes LCD
INKEY() Liest ein Zeichen aus dem seriellen Eingangsbuffer
INP() Liest ein Byte von einem Hardwareport oder aus dem Datenspeicher
INPUT Liest Zeichen vom COM-Port und speichert in die betreffenden Variablen ab. Vor dem Promptzeichen kann eine Zeichenkonstante prompt als Eingabeauf¬forderung gesetzt werden. Die Anzahl der Bytes hängt vom Typ der Variablen ab. INPUT wartet auf ein CR.
INPUTBIN Liest Binärwerte vom COM-Port und speichert diese als Binärzahl ab. Die An¬zahl der Bytes hängt vom Typ der Variablen ab. INPUTBIN wartet nicht auf ein CR.
INPUTHEX Liest Zeichen vom COM-Port und speichert diese als Hexadezimalzahl ab. Die Anzahl der Bytes hängt vom Typ der Variablen ab. INPUTHEX wartet nicht auf ein CR.
INT() Übergibt den ganzzahligen Teil einer Singlevariablen
INTSTR() Übergibt die Position eines Substrings in einem String
IP2STR() Konvertiert eine IP in einen String
ISCHARWAITING() Übergibt 1, wenn Zeichen im Buffer der Hardware UART vorhanden
KILL Löscht ein File vom CF Drive
LCASE() Konvertiert einen String in Kleinbuchstaben
LCD Sendet den Inhalt einer Variablen oder Text an ein LCD
LCDAT Sendet den Inhalt einer Variablen oder Text an ein SED-Grafik-LCD
LCDCONTRAST Stellt den Kontrast beim Text-LCD ein (LCD abhängig)
LEFT() Übergibt eine bestimmte Anzahl von Zeichen eines Strings links beginnend
LEN() Übergibt die Länge eines Strings
LINE Zeichnet eine Linie auf ein Grafik-LCD
LINEINPUT Liest eine Zeile aus einem geöffneten File
LOAD Lädt einen Reload Wert in einen Timer
LOADADR Lädt die Adresse einer Variable in eines der Registerpaare X oder Z
LOADLABEL() Lädt die Adresse eines Labels in eine Wordvariable.
LOADWORDADR() Lädt das Z-Register und setzt RAMPZ (wenn verfügbar)
LOC() Übergibt die letzte Lese- oder Schreibposition vom CF Drive
LOCAL Deklariert eine lokale Variable in einer Funktion oder einer Subroutine. Eine lokale Variable ist eine temporäre Variable, die in einem Frame gespeichert wird.
LOCATE Positioniert den Cursor im LCD
LOF() Übergibt die Länge eines Files vom CF Drive
LOG() Übergibt den natürlichen Logarithmus einer Singlevariablen
LOG10() Übergibt den dekadischen Logarithmus einer Singlevariablen
LOOKDOWN() Übergibt den Index einer gesuchten Wertes
LOOKUP() Übergibt einen Wert aus eines Tabelle
LOOKUPSTR() Übergibt einen String aus einer Stringtabelle
LTRIM() Bereinigt die führenden Leerzeichen in einem String
LOW() Ermittelt das niederwertige Byte (LSB) einer Variablen
LOWERLINE Positioniert den Cursor in die untere Zeile des LCD
MACRO ENDMACRO Definition eines Makros
MAKEBCD() Konvertiert eine Variable vom Dezimal- in das BCD-Format
MAKEDEC() Konvertiert eine Variable vom BCD- in das Dezimalformat
MAKEINT() Konvertiert zwei Bytes in eine Integervariable (var = 256 * MSB + LSB)
MAKEMODBUS() Erzeugt einen MODBUS Master/Client Frame
MAKETCP() Erzeugt eine TCP/IP Variable
MAX() Übergibt das Maximum eines Wordarrays
MEMCPY() Kopiert einen Block von Bytes
MID() Ersetzt Teile eines Strings durch einen anderen String oder gibt Teile eines Strings zurück
MIN() Übergibt das Minimum eines Wordarrays
NBITS() Setzt Bits (Gegenstück zu BITS())
ON Sprungverteiler für Interruptvektortabelle oder Liste
OPEN Ordnet einem Software-UART ein I/O-Pin als Eingang oder Ausgang sowie die Kommunikationsparameter zu
OUT Sendet ein Byte an ein Hardwareport oder in den Datenspeicher
PEEK() Liest ein Byte aus einem internen Register (RO – R31)
POKE Schreibt ein Byte in ein internes Register (RO – R31)
POWER Potenzfunktion xy
POWERDOWN Versetzt den Prozessor in den POWERDOWN Mode, d.h. der Systemtakt wird komplett abgeschaltet. Der POWERDOWN Mode wird nur durch Reset verlas¬sen. Der Watchdog kann diesen Reset auslösen
POWERSAVE Versetzt die CPU in den PowerSave Mode (CPU abhängig)
PRINT Sendet den Inhalt von Variablen oder Text an die serielle Schnittstelle. Mehrere Variable werden durch Semikolon getrennt. Semikolon am Ende unterdrückt die automatisch CR/LF.
PRINTBIN Sendet den binaren Inhalt einer Variablen an die serielle Schnittstelle. Mit PRINTBIN lassen sich aber ganze Arrays ausgeben
PSET Setzt ein Pixel (im Grafik-LCD)
PS2M0USEXY Sendet Informationen über Bewegung und Tastenbetätigung einer Maus an einen PC
PULSEIN Misst die Länge eines Pulses an einem Portpin
PULSEOUT Erzeugt einen Puls an einem Portpin
PUSHALL POPALL Retten und Restaurieren aller internen Register
PUT Schreibt ein Byte zum UART (HW, SW) bzw. Daten in ein geöffnetes File im Binary Mode
QUOTE() Konvertiert text zu „text“ (für HTML-Anwendungen)
RAD2DEG Konvertiert einen Winkel von Radian in Grad
RC5SEND Sendet eine RC5 codierte Pulsfolge zu einem IR Empfänger
RC5SENDTEXT Sendet eine erweiterte RC5 codierte Pulsfolge zu einem IR Empfänger
RC6SEND Sendet eine RC6 codierte Pulsfolge zu einem IR Empfänger
READ Liest einen Wert aus einer data Zeile resp. dem Speicher und ordnet diesen einer Variablen zu
READEEPROM Liest einen Wert aus dem EEPROM und ordnet diesen einer Variablen zu. Wichtig: Nach einem Reset kann die erste Zeile im EEPROM überschrieben werden
READHITAG() Liest die HITAG RFID Transponder Seriennummer
READMAGCARD Liest Daten von einer Magnetkarte
REM Leitet einen Kommentar ein
RESET Setzt ein Bit auf Null
RESTORE Setzt den Datenzeiger in einer DATA Instruktion zurück auf den Anfang
RETURN Rücksprung aus einer Subroutine oder einer Interruptserviceroutine
RIGHTO Übergibt eine bestimmte Anzahl von Zeichen eines Strings rechts beginnend
RND() Übergibt eine Pseudo-Zufallsszahl
ROTATE Rotiert alle Bits einer Variablen um eine Position nach links oder rechts
ROUND() Übergibt den gerundeten Wert einer Singlevariablen
RTRIM() Bereinigt die abschließenden Leerzeichen in einem String
SECELAPSED Übergibt die ab einem Zeitstempel vergangenen Sekunden
SECOFDAY() Übergibt die Sekunden des Tages
SELECT CASE END SELECT Fallunterscheidung
SENDSCAN Sendet ein Scankommando zum Mausanschluss eines PCs
SENDSCANKBD Sendet ein Scankommando zum Tastaturschluss eines PCs
SERIN Liest Daten von einem dynamischen Software UART
SEROUT Schreibt Daten zu einem dynamischen Software UART
SET Setzt ein Bit auf Eins
SETFONT Setzt den Font für LCDAT für ein SED-Grafik-LCD
SETTCP Konfiguriert den TCP/IP W3100A Chip
SETTCPREGS Beschreibt Register des W3100A Chips
SETIPPROTOCOL Konfiguriert das Socket RAW-Mode Protokoll
SGN() Übergibt das Vorzeichen einer Singlevariablen
SHIFT Schiebt alle Bits einer Variablen eine Position nach Links oder rechts
SHIFTLCD Verschiebt den LCD-Inhalt eine Position nach links oder rechts
SHIFTCURSOR Verschiebt den LCD Cursor eine Position nach links oder rechts
SHIFTIN Schiebt einen Bitstrom von einem Portpin in eine Variable
SHIFTOUT Schiebt einen Bitstrom aus einer Variablen zu einem Portpin
SHOWPIC Anzeigen eines BGF Files auf einem Grafik-LCD
SHOWPICE Anzeigen eines BGF Files im EEPROM auf einem Grafik-LCD
SIN() Übergibt den Sinus einer Singlevariablen
SINH() Übergibt den Sinus Hyperbolicus einer Singlevariablen
SOCKETCONNECT() Erzeugt eine Verbindung zu einem TCP/IP Server
SOCKETLISTEN Eröffnet einen Socket im Servermode
SOCKETSTAT() Übergibt Socketinformationen
SONYSEND Sendet eine SONY Pulsfolge zu einem IR Empfänger
SOUND Tonerzeugung mit einem Beeper
SPACE() Übergibt einen String aus Leerzeichen
SPC() Erzeugt eine String aus einer Anzahl Leerzeichen
SPIINIT Initialisiert die SPI Pins
SPXIN Liest eine Anzahl von Bytes vom SPI Bus
SPIMOVE() Schreibt und liest eine Anzahl von Bytes zum/vom SPI Bus
SPIOUT Schreibt eine Anzahl von Bytes zum SPI Bus
SPLIT() Teilt einen String in eine Anzahl von Arrayelementen
START Starten der betreffenden Hardware
STCHECK Test auf Stackoverflow
STR() Konvertiert eine Zahl in einen String
STRING() Übergibt einen String aus mehreren gleichen Zeichen
STOP Stopp der betreffenden Hardware
SUB   END SUB Definiert eine Subroutine
SWAP Vertauscht den Inhalt von zwei Variablen gleichen Typs
SQR() Übergibt die Quadratwurzel einer Singlevariablen
SYSDAY() Übergibt den Systemtag
SYSSEC() Übergibt die Systemsekunden
SYSSECELAPSED() Übergibt die ab einem Systemzeitstempel vergangenen Systemsekunden
TAN() Übergibt den Tangens einer Singlevariablen
TANH() Übergibt den Tangens Hyperbolicus einer Singlevariablen
TCPCHECKSUM() Übergibt eine TCP/IP Checksum
TCPREAD() Liest Daten von einer geöffneten Socket Verbindung
TCPWRITE() Schreibt Daten zu einer geöffneten Socket Verbindung
TCPWRITESTRING() Sendet einen String zu einer geöffneten Socket Verbindung
TIME$ Variable und Formatierung für die Zeit
THIRDLINE Setzt den Cursor an den Beginn der dritten Zeile des LCDs
TIME Übergibt einen Zeitwert
TOGGLE Umschalten eines Ausgangspins oder einer Bitvariablen
TRIM() Bereinigt führenden und abschließende Leerzeichen in einem String
UCASE() Konvertiert einen String in Grossbuchstaben
UDPREAD Liest Daten über das UDP Protokoll
UDPWRITE Schreibt Daten über das UDP Protokoll
UDPWRITESTRING Sendet einen String über das UDP Protokoll
UPPERLINE Positioniert den Cursor in die obere Zeile des LCDs
VAL() Konvertiert einen String in eine Zahl
VARPTR() Ermittelt die Adresse einer Variablen im Datenspeicher
VER() Rückgabe der AVR-DOS-Version
VERSION() Rückgabe von Datum und Zeit der Compilation
WAIT WAITMS WAITUS Unterbrechung der Programmabarbeitung für (nicht sehr präzise) Zeit in s, ms bzw. µs
WAITKEY() Wartet auf ein Zeichen von der seriellen Schnittstelle
WRITE Schreibt Daten in ein File
WRITEEEPROM Schreibt den Wert einer Variablen ins EEPROM. Wichtig: Nach einem Reset kann die erste Zelle im EEPROM überschrieben werden.
WHILE WEND Wiederholt eine Folge von Instruktionen solange eine Bedingung erfüllt ist.
#IF #ELSE #ENDIF Bedingte Compilierung