Hm. Es sind die Standard UART / Seriell Routinen. Etwas ausgeben: print "Ausgabe"
So in der Art.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
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.






Zitieren

Lesezeichen