Die Definition Byte ist numerischAber wiso funktionniert der Code dann mit einstelligen
Zahlen?
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)
Die Codeschnipsel habe ich Dir doch gegeben, soll ich Dir etwa Dein ganzes Programm schreiben ???Für einen kleinen Codeschnipsel wäre ich dir sehr sehr dankbar!!!!!
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







Zitieren

Lesezeichen