Witam,
Jak sprawnie odebrać dane bajty lub znak ascii z przedziałów:
- 1..32
- 126..255
Gdyż program sprawuje się rewelacyjnie i NIEZAWODNIE jak odbieram tylko znaki z klawiatury, a ja chcę przesłać z PC do uC ok 1MB danych z zakresu Bajt = 1..255
Rozwiązanie jakie jest poniżej - rewelacja! Lecz moja ramka danych jest 128bajtowa i docelowo 128bajt jak jest znamiek Bytematch powinien uzupełnić zmienną Linia, lecz jak w czasie wysyłania danych pojawia się w środku chociasz jeden znak #13 to automatycznie kończy odbiór danych i wyświetla zmienną Linia gdzie jest to błędne w tym przypadku.
Mam taki programik(sprawdza się tylko jak wysyłam dane 33..125 - znaki z klawiatury):
Jak ulepszyć kod by bezproblemowo odbierać cały zakres bajta.
Z góry dziękuję za propozycję.
Jak sprawnie odebrać dane bajty lub znak ascii z przedziałów:
- 1..32
- 126..255
Gdyż program sprawuje się rewelacyjnie i NIEZAWODNIE jak odbieram tylko znaki z klawiatury, a ja chcę przesłać z PC do uC ok 1MB danych z zakresu Bajt = 1..255
Rozwiązanie jakie jest poniżej - rewelacja! Lecz moja ramka danych jest 128bajtowa i docelowo 128bajt jak jest znamiek Bytematch powinien uzupełnić zmienną Linia, lecz jak w czasie wysyłania danych pojawia się w środku chociasz jeden znak #13 to automatycznie kończy odbiór danych i wyświetla zmienną Linia gdzie jest to błędne w tym przypadku.
Mam taki programik(sprawdza się tylko jak wysyłam dane 33..125 - znaki z klawiatury):
'Nie chce stosować tego bo się nie sprawdza jeśli dane są inne niż z zakresu ASCII Char = 33..125
'Config Serialin = Buffered , Size = 128 , Bytematch = 13
Config Serialin = Buffered , Size = 128
Do
If Getline() > 0 Then
Print Linia ' w celu kontroli co przyszło z rs232
End If
Loop
End
Serial0charmatch: 'po odebraniu znaku Chr(13) zwiększenie licznika lini(zdarzeń)
lds r24,{event}
inc r24
sts {event},r24
Return
Function Getline()as Byte
Linia = ""
If Event > 0 Then
If _rs_bufcountr0 > 0 Then
Input Linia , Noecho
Err = 0
Getline = Len(linia)
Cli
Decr Event
sei
End If
End If
End FunctionJak ulepszyć kod by bezproblemowo odbierać cały zakres bajta.
Z góry dziękuję za propozycję.