Hier mal mein Code für das einlesen Per UART und Aufteilen des Strings in Bytes.
Warum kann ich den auseinandergeschnittenen String nicht als Byte Dimensionieren? z.B: Gyroz?Code:$regfile = "m8def.dat" $crystal = 7372800 $baud = 115200 Dim E As String * 13 'Länge des Strings hier einstellen. Abhängig von den gesendeten Kanälen. Dim Gyroz As String * 1 Dim Gyroy As String * 1 Dim Gyrox As String * 1 Dim Accz As String * 1 Dim Accy As String * 1 Dim Accx As String * 1 Dim Anfang As String * 1 On Urxc Onrxd 'Interrupt auslösen, wenn volsändiges Zeichen geladen. Enable Urxc Enable Interrupts '------------------------------------------------------------------------ Do Anfang = Left(e , 1) '1. Byte lesen If Anfang = "115" Then 'Anfang des Datensatzes abwarten,damit nicht mittendrin in den String geschrieben wird. E = "" End If If Len(e) > 12 Then 'wenn kompletter Datensatz geschickt, dann in einzelne Variablen aufteilen. Gosub Werte End If Loop Onrxd: E = E + Chr(udr) 'neu empfangenes Byte anhängen Return Werte: Gyroz = Mid(e , 5 , 1) 'String e wird in die einzelnen Werte verteilt. Gyroy = Mid(e , 6 , 1) Gyrox = Mid(e , 7 , 1) Accz = Mid(e , 8 , 1) Accy = Mid(e , 9 , 1) Accx = Mid(e , 10 , 1) E = "" Return End
Ist das abwarten bis ein p(115) gesendet wird so richtig?
If Anfang = "115" Then
E = ""
Wenn jemand etwas auffällt, bitte Posten![]()







Zitieren

Lesezeichen