Hm. Es sind die Standard UART / Seriell Routinen. Etwas ausgeben: print "Ausgabe"
Code:
$baud = 38400 ' use baud rate
$hwstack = 128 ' default use 32 for the hardware stack
$swstack = 128 ' default use 10 for the SW stack
$framesize = 128 ' default use 40 for the frame space
Config Serialin = Buffered , Size = 254
declare sub empfangen()
dim b as byte
dim sein as string * 50
dim stream as bit
Enable Interrupts
Do
If Ischarwaiting() = 1 Then
Call Empfangen()
End If
Loop
End
Sub Empfangen()
B = Inkey()
If B > 0 Then
If Stream = 0 Then
If B = 199 Then
Sein = ""
Stream = 1
Else
End If
Else
If B = 13 Then
Stream = 0
Goto Auswerten
Elseif B = 199 Then
Sein = ""
Else
If Len(sein) < 50 Then
Sein = Sein + Chr(b)
End If
End If
End If
End If
Exit Sub
Auswerten:
Print "Empfangen:" ;
Print Sein
End Sub
So in der Art.
Stream(0/1) nute ich, ob gerade ein Datensatz empfangen wird. chr$(199) Symbolisiert bei mir immer den Anfang eines Streams (Datensatzes)
Sub Auswerten wird angesprungen, wenn chr(13) empfangen wird, also Stream analysieren. Sein enthält das Empfangene. Begrenzt habe ich die Streams auf 50 Zeichen. Als Baudrate habe ich 38400 gewählt, da dafür kein krummer Quarz benötigt wird.
Ich habe das gerade nicht getestet, sondern die für die Kommunikation relevanten Teile aus einem fertigen Programm rauskopiert.
Als Gegenstück habe ich ein Programm in VB für den PC geschrieben. Du könntest aber auch über den virtuellen comport testen. Dafür am besten die Agfrage nach chr(199) rausnehmen oder ändern.
Lesezeichen