INPUT/de

Aus MCS Wiki AVR
< INPUT(Weitergeleitet von INPUT)
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

 [Verbergen

Funktion

Ermöglicht Eingaben von der Tastatur, einer Datei oder über SPI.

 

 

Syntax

INPUT [" prompt" ] , var[ , varn ]

INPUT #ch, var[ , varn ]

 

 

Anmerkungen

Prompt

Optionale String-Konstante, die vor dem Prompt-Zeichen geschrieben wird.

Var,varn

Variable zur Aufnahme des Input-Wertes oder Strings.

Ch

Kanalnummer, die eine geöffnete Datei identifiziert. Kann eine Konstante oder eine Variable sein.

 

Die INPUT-Routine kann benutzt werden wenn man einen Mikrocontroller mit serieller Schnittstelle hat.

Die serielle Schnittstelle kann (über einen RS-232 - TTL Konverter) mit der seriellen Schnittstelle eines PCs verbunden werden.

Auf dieses Weise kann man die Tastatur des PCs mit einem Terminalemulator-Programm für Eingaben benutzen.

Man kann auch den in BASCOM integrierten Terminal-Emulator verwenden.

 

Bei Benutzung des AVR-DOS Datei-Systems kann man Variableninhalte aus einer geöffneten Datei lesen. Da die Variablenwerte im ASCII-Format gespeichert sind werden die Daten automatisch in das richtige Format umgewandelt.

Wenn INPUT in Zusammenhang mit Dateien benutzt wird dann ist PROMPT nicht unterstützt.


 

Unterschied zu VB

In VB kann man &H  mit INPUT spezifizieren und VB erkennt daraus, dass ein hexadezimaler Wert benutzt wird.

BASCOM hat den neuen Befehl INPUTHEX.

 

 

Xmega-SPI

Beim Empfang über das SPI-Interface muss der SS-Pin aktiviert werden. Manche Chips benötigen active low, manche Chips benötigen active high. Dies ist anhängig vom Slave-Chip.

Wenn man die SS=Auto Option benutzt dann wird der Level von SS automatisch geändert. SS wird auf Low geschaltet, Datenbytes werden empfangen und schließlich wird SS wieder high geschaltet.

Datenempfang funktioniert durch Senden eines Datenbytes und Empfang der Daten, die herausgeschrieben werden (shifted out). Die Daten, die gesendet werden sind 0. Man kann das in der Library _inputspivar Routine ändern.

Man kann nicht Konstanten senden wenn man INPUT mit SPI benutzt. Also wird INPUT #10, "SPI", var  nicht unterstützt.

INPUT in Zusammenhang mit SPI wartet auch nicht auf Empfang. Es wartet auf die Anzahl Bytes die in die Variable passen. Siehe Beispiel unter CONFIG SPIx.

 

Anzahl Bytes

Der Compiler empfängt 1 Byte für eine Variable die als BYTE dimensioniert ist.

Er empfängt 2 Bytes für WORD/INTEGER Variablen, 4 Bytes für eine LONG/SINGLE und 8 Bytes für eine DOUBLE-Variable.

Wie bei allen BASCOM-Routinen wird das least significant Byte zuerst empfangen.

 

Wenn ein Array angegeben wird dann wird ein Element empfangen.

Mit einem optionalen Parameter kann man angeben wieviele Bytes empfangen werden sollen. Man muss ein Semikolon (;) verwenden um diesen Parameter anzugeben weil das Komma (,) benutzt wird um mehrere Variablen zu empfangen.

Beispiel

Dim Tmparray(5) As Byte  , Spi_send_byte As Byte , W as Word

Input #12 , Spi_receive_byte ; 1                         ' READ 1 byte

Input #12 , Tmparray(1) ; 1 , Tmparray(2) ; B       ' read 1 byte and 'b' bytes starting at element 2

 

 

 

 

 

Siehe auch

INPUTHEX , PRINT , ECHO , WRITE , INPUTBIN

 

 

 

Beispiel


'-----------------------------------------------------------------------------------------
'name : input.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demo: INPUT, INPUTHEX
'micro : Mega48
'suited for demo : yes
'commercial addon needed : no
'-----------------------------------------------------------------------------------------
 
$regfile = "m48def.dat" ' specify the used micro
$crystal = 4000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Dim V As Byte , B1 As Byte
Dim C As Integer , D As Byte
Dim S As String * 15
 
Input "Hier kann eine Frage stehen " , V
Input B1 'Weglassen wenn keine Frage
 
Input "Eingabe von Integer " , C
Print C
 
 
Inputhex "Eingabe einer Hex-Zahl (4 bytes) " , C
Print C
Inputhex "Eingabe Hex Byte (2 bytes) " , D
Print D
 
Input "Weitere Variablen " , C , D
Print C ; " " ; D
 
Input C Noecho 'Echo unterdrücken
 
Input "Bitte Namen eingeben " , S
Print "Hallo " ; S
 
Input S Noecho 'Ohne Echo
Print S
End

Languages   English Deutsch  
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
In anderen Sprachen
Sprache