Aber wiso funktionniert der Code dann mit einstelligen
Zahlen?
Die Definition Byte ist numerisch
Die Definition "1" ist ein String
Der BASCOM-Compiler ist so tolerant, das er automatisch den String "1" in einen numerischen Wert umwandelt.
Andere Compiler geben einen Fehler aus, denn richtig wäre ja wie gesagt:
B=inkey()
If B = asc("1") Then
Bei Strings mit größeren Längen (z.B. "res") würde das nicht mehr gehen.
(Ich bin mir jetzt nicht sicher ob ein Compilefehler kommt, oder nur der erste Buchstabe ("r") konvertiert wird)
Für einen kleinen Codeschnipsel wäre ich dir sehr sehr dankbar!!!!!
Die Codeschnipsel habe ich Dir doch gegeben, soll ich Dir etwa Dein ganzes Programm schreiben ???
Code:
$baud = 9600
$crystal = 8000000
Config Serialin = Buffered ,Size = 20
Dim A As Byte
Dim B As String * 1
Dim C As String * 20
Waitms 1250
Begin:
C = ""
Do
A = Inkey()
B = chr(A)
C = C + B
If B = "1" Then
Portd.2 = 1
Waitms 1250
Portd.2 = 0
Print "2"
C = ""
End If
If B = "3" Then
Portd.2 = 1
Waitms 1250
Portd.2 = 0
Print "4"
C = ""
End If
If C = "res" Then
Portd.2 = 1
Waitms 1250
Portd.2 = 0
Print "4"
End If
if A = 13 then
C = ""
end if
Loop
Lesezeichen