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.

BefehlKommentar
1WIRECOUNT()Übergibt die Anzahl von angeschlossenen 1-Wire Devices
1WRESETReset 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
1WVERIFYVerifiziert, ob eine Device ID am 1-Wire Bus gefunden wird
1WWRITESchreiben 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, ADR2Erzeugt Label Adressen
ALIASAlias 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, BAUDLBaudrate 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
BITSSetzt Bits
BITWAITWarten bis ein Bit gesetzt oder zurückgesetzt ist
BLOADSchreibt ein File ins SRAM
BOX()Erzeugt eine gefüllte Box auf einem Grafikdisplay
BOXFILL()Erzeugt eine gefüllte Box auf einem Grafikdisplay
BSAVESchreibt SRAM in ein File
BUFSPACE()Ermittelt den freien Speicher im seriellen Buffer
BYVALÜbergabe einer Variablen durch ihren Wert
CALLAufruf und Ausführung einer Subroutine
CHECKSUM()Übergibt die Byte-Checksumme eines Strings
CHR()Konvertiert eine Bytevariable oder Konstante in ein Zeichen
CIRCLEZeichnet einen Kreis im Grafik-LCD
CLEARLöschen eines seriellen Buffers
CLSLöschen eines angeschlossenen LCDs
CLOCKDIVISIONSetzt den Clockteiler bei megaAVRs
CLOSESchließt einen Kommunikationskanal
CLOSESOCKETSchließt eine Socketverbindung
CONFIGKonfiguriert Hardware
CONSTDeklariert eine Konstante
cos()Übergibt den Cosinus einer Singlevariablen
COSH()Übergibt den Cosinus Hyperbolicus einer Singlevariablen
COUNTER0, COUNTER1Zugriff 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
CURSORSetzen der Attribute des LCD Cursors
DATASpeichert 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
DGBSendet Debuginformationen zur Hardware-UART
DCF77TIMEZONE()Übergibt den Offset zur Greenwich Zeit
DEBOUNCEEntprellt eine an ein Pin angeschlossene Taste
DECRDekrementiert (Subtraktion von Eins) eine Variable
DECLAREDeklariert eine Funktion oder eine Subroutine
DEFBIT, DEFBYTE, DEFINT, DEFLNG, DEFWORDDeklariert alle nicht dimensionierten Variablen, die mit dem gleichen Zeichen beginnen, als entsprechenden Typ
DEG2RADKonvertiert einen Winkel von Grad in Radian
DEFLCDCHARDefiniert ein anwendungsspezifisches LCD Zeichen
DELAYUnterbricht die Programmabarbeitung für ca. 1 ms
DIMDeklariert und dimensioniert eine Variable im SRAM (default), XRAM oder EF PROM (ERAM)
DIR()Gibt den Filenamen zurück
DISABLESperrt einen Interrupt
DISKFREE()Gibt den freien Speicherplatz zurück
DISKSIZE()Gibt die Grösse des Diskspeichers zurück
DISPLAYSchaltet das Display ein oder aus
DO. ..LOOPWiederholt 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
DTMFOUTSendet einen DTMF Tone zum Comparel Ausgang von Timer1
ECHOSchaltet das Echo bei INPUT ein oder aus
ENABLEErlaubt einen spezifischen Interrupt
ENCODER()Lesen von Impulsen von einem Encoder
ENDBeendet das laufende Programm. Alle Interrupts werden gesperrt
EOF()Übergibt den End-of-File Status
ERRInterne Errorvariable, im Fehlerfall = 1
EXITAustritt 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
FLUSHSchreibt den Bufferinhalt ins File
FOR … NEXTWiederholt 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
FOURTHLINESetzt den Cursor an den Beginn der vierten Zeile des LCDs
FRAC()Übergibt die Nachkommastellen einer Singlevariablen
FREEFILE()Übergibt eine freie Filenummer
FUNCTION END FUNCTIONDefiniert eine Funktion
FUSING()Stringformatierung einer Singlevariablen
GETLiest 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
GLCDCMDSendet ein Kommandobyte zu einem SED-Grafik-LCD
GLCDDATASendet ein Datenbyte zu einem SED-Grafik-LCD
GOSUBSprung zu einer Subroutine
GOTOSprung 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
HIGHOErmittelt das höchstwertige Byte (MSB) einer Variablen
HIGHW()Ermittelt das höchstwertige Word (MSW) einer Longvariablen
HOMESetzt den Cursor an den Beginn der ersten Zeile des LCDs
I2CINITInitialisiert den I2C Bus
I2CRECEIVEEmpfängt Daten vom I2C Bus
I2CSENDSendet Daten zum I2C Bus
I2CSTARTErzeugt eine I2C Startbedingung
I2CSTOPErzeugt eine I2C Stoppbedingung
I2CRBYTEEmpfängt ein Byte vom I2C Bus
I2CWBYTESendet ein Byte vom I2C Bus
IDLEVersetzt 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 ENDIFBedingte Programmverzweigung
INCRInkrementiert (Addition von Eins) eine Variable
INITFILESYSTEM()Initialisiert das CF Filesystem
INITLCDInitialisiert ein angeschlossenes LCD
INKEY()Liest ein Zeichen aus dem seriellen Eingangsbuffer
INP()Liest ein Byte von einem Hardwareport oder aus dem Datenspeicher
INPUTLiest 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.
INPUTBINLiest 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.
INPUTHEXLiest 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
KILLLöscht ein File vom CF Drive
LCASE()Konvertiert einen String in Kleinbuchstaben
LCDSendet den Inhalt einer Variablen oder Text an ein LCD
LCDATSendet den Inhalt einer Variablen oder Text an ein SED-Grafik-LCD
LCDCONTRASTStellt 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
LINEZeichnet eine Linie auf ein Grafik-LCD
LINEINPUTLiest eine Zeile aus einem geöffneten File
LOADLädt einen Reload Wert in einen Timer
LOADADRLä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
LOCALDeklariert eine lokale Variable in einer Funktion oder einer Subroutine. Eine lokale Variable ist eine temporäre Variable, die in einem Frame gespeichert wird.
LOCATEPositioniert 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
LOWERLINEPositioniert den Cursor in die untere Zeile des LCD
MACRO ENDMACRODefinition 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())
ONSprungverteiler für Interruptvektortabelle oder Liste
OPENOrdnet einem Software-UART ein I/O-Pin als Eingang oder Ausgang sowie die Kommunikationsparameter zu
OUTSendet ein Byte an ein Hardwareport oder in den Datenspeicher
PEEK()Liest ein Byte aus einem internen Register (RO – R31)
POKESchreibt ein Byte in ein internes Register (RO – R31)
POWERPotenzfunktion xy
POWERDOWNVersetzt 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
POWERSAVEVersetzt die CPU in den PowerSave Mode (CPU abhängig)
PRINTSendet 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.
PRINTBINSendet den binaren Inhalt einer Variablen an die serielle Schnittstelle. Mit PRINTBIN lassen sich aber ganze Arrays ausgeben
PSETSetzt ein Pixel (im Grafik-LCD)
PS2M0USEXYSendet Informationen über Bewegung und Tastenbetätigung einer Maus an einen PC
PULSEINMisst die Länge eines Pulses an einem Portpin
PULSEOUTErzeugt einen Puls an einem Portpin
PUSHALL POPALLRetten und Restaurieren aller internen Register
PUTSchreibt 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)
RAD2DEGKonvertiert einen Winkel von Radian in Grad
RC5SENDSendet eine RC5 codierte Pulsfolge zu einem IR Empfänger
RC5SENDTEXTSendet eine erweiterte RC5 codierte Pulsfolge zu einem IR Empfänger
RC6SENDSendet eine RC6 codierte Pulsfolge zu einem IR Empfänger
READLiest einen Wert aus einer data Zeile resp. dem Speicher und ordnet diesen einer Variablen zu
READEEPROMLiest 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
READMAGCARDLiest Daten von einer Magnetkarte
REMLeitet einen Kommentar ein
RESETSetzt ein Bit auf Null
RESTORESetzt den Datenzeiger in einer DATA Instruktion zurück auf den Anfang
RETURNRücksprung aus einer Subroutine oder einer Interruptserviceroutine
RIGHTOÜbergibt eine bestimmte Anzahl von Zeichen eines Strings rechts beginnend
RND()Übergibt eine Pseudo-Zufallsszahl
ROTATERotiert 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 SELECTFallunterscheidung
SENDSCANSendet ein Scankommando zum Mausanschluss eines PCs
SENDSCANKBDSendet ein Scankommando zum Tastaturschluss eines PCs
SERINLiest Daten von einem dynamischen Software UART
SEROUTSchreibt Daten zu einem dynamischen Software UART
SETSetzt ein Bit auf Eins
SETFONTSetzt den Font für LCDAT für ein SED-Grafik-LCD
SETTCPKonfiguriert den TCP/IP W3100A Chip
SETTCPREGSBeschreibt Register des W3100A Chips
SETIPPROTOCOLKonfiguriert das Socket RAW-Mode Protokoll
SGN()Übergibt das Vorzeichen einer Singlevariablen
SHIFTSchiebt alle Bits einer Variablen eine Position nach Links oder rechts
SHIFTLCDVerschiebt den LCD-Inhalt eine Position nach links oder rechts
SHIFTCURSORVerschiebt den LCD Cursor eine Position nach links oder rechts
SHIFTINSchiebt einen Bitstrom von einem Portpin in eine Variable
SHIFTOUTSchiebt einen Bitstrom aus einer Variablen zu einem Portpin
SHOWPICAnzeigen eines BGF Files auf einem Grafik-LCD
SHOWPICEAnzeigen 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
SOCKETLISTENEröffnet einen Socket im Servermode
SOCKETSTAT()Übergibt Socketinformationen
SONYSENDSendet eine SONY Pulsfolge zu einem IR Empfänger
SOUNDTonerzeugung mit einem Beeper
SPACE()Übergibt einen String aus Leerzeichen
SPC()Erzeugt eine String aus einer Anzahl Leerzeichen
SPIINITInitialisiert die SPI Pins
SPXINLiest eine Anzahl von Bytes vom SPI Bus
SPIMOVE()Schreibt und liest eine Anzahl von Bytes zum/vom SPI Bus
SPIOUTSchreibt eine Anzahl von Bytes zum SPI Bus
SPLIT()Teilt einen String in eine Anzahl von Arrayelementen
STARTStarten der betreffenden Hardware
STCHECKTest auf Stackoverflow
STR()Konvertiert eine Zahl in einen String
STRING()Übergibt einen String aus mehreren gleichen Zeichen
STOPStopp der betreffenden Hardware
SUB   END SUBDefiniert eine Subroutine
SWAPVertauscht 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
THIRDLINESetzt den Cursor an den Beginn der dritten Zeile des LCDs
TIMEÜbergibt einen Zeitwert
TOGGLEUmschalten eines Ausgangspins oder einer Bitvariablen
TRIM()Bereinigt führenden und abschließende Leerzeichen in einem String
UCASE()Konvertiert einen String in Grossbuchstaben
UDPREADLiest Daten über das UDP Protokoll
UDPWRITESchreibt Daten über das UDP Protokoll
UDPWRITESTRINGSendet einen String über das UDP Protokoll
UPPERLINEPositioniert 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 WAITUSUnterbrechung der Programmabarbeitung für (nicht sehr präzise) Zeit in s, ms bzw. µs
WAITKEY()Wartet auf ein Zeichen von der seriellen Schnittstelle
WRITESchreibt Daten in ein File
WRITEEEPROMSchreibt den Wert einer Variablen ins EEPROM. Wichtig: Nach einem Reset kann die erste Zelle im EEPROM überschrieben werden.
WHILE WENDWiederholt eine Folge von Instruktionen solange eine Bedingung erfüllt ist.
#IF #ELSE #ENDIFBedingte Compilierung