Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Buffered serialin
Habe ein problem mit dem Empfangen von einem String.
Ich bekomme immer nur zwei zeichen. das heisst er liest nur 2Bytes und der rest ist irgendwo verschwunden.
habe folgendes drin aber es funktioniert nicht.
Config serialin = buffered, size = 20
er hat trotzdem immer nur 2 zeichen im Buffer, obwohl ich ihm ja platz für 20 gebe. brauch übrigens maximal 5zeichen = 5Byte
habe ich noch etwas vergessen??
Naja, wie liest du die Daten ? Lass gucken !
Config Serialin = Buffered , Size = 20
Enable Interrupts
.
.
If Ischarwaiting() <> 0 Then
Zeichen = Inkey()
If Zeichen = 10 Then
B = 1
Buf = ""
Else
If B = 1 Then
If Zeichen = 13 Then
Buf = Buf + Chr(0)
Eingang = Val(buf)
B = 0
Print "eingang" ; Eingang;
Else
Buf = Buf + Chr(zeichen)
End If
End If
End If
End If
mit inkey() lese ich aus, aber ich habe immer nur 2 zeichen auch wenn ich mehr sende
ich denke irgdenwie akzeptiert er meine Buffergrösse nicht, weil ich kann dort angeben was ich will er hat immer nur 2Byte
edit:
kann es möglicherweise daran liegen?
The M32 USART may not work with Bascom Buffered support as the Mega32
has a 2 byte FIFO buffer. I have never used it , but maybe another group
member have tested it
Ohne Buffer mit timeout ein Auszug was läuft:
Dim Char_vergleich(20) As Byte
Dim Char_da(20) As Byte
Const Timeoutfaktor=100 '100mSek
Charzaehler = 0 'Prüfen auf Startstring und IO / Startstring einlesen
Timeout = 0
Do
Hole_char = Ischarwaiting() 'RS232 Port auf Daten abfragen
If Hole_char = 0 Then 'keine Daten da
Waitms 1
Incr Timeout
Else 'Daten da
Timeout = 0
Hole_char = Inkey() 'Byte auslesen
Incr Charzaehler 'Feldzähler hoch
Char_da(charzaehler) = Hole_char
If Char_da(charzaehler) <> Char_vergleich(charzaehler) Then Charzaehler = 100 'Vergleiche Byte im Startsting
End If
If Timeout > Timeoutfaktor Then Exit Do 'Timeout abfragen
Loop Until Charzaehler > 8 'Schleife bis alle 8 Byte vom Startstring ausgelesen oder Timeout
If Charzaehler <> 9 Then
Datenuebergabe_rs232 = Fehler_im_startstring '10
Exit Sub
End If
Gento
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.