Witam
Odbieram pakiet danych (dokładnie 11 bajtów) przez sprzętowy RS232 z prędkością 38400 (uP ATMEGA 128L kwarc-8MHz) w Bascomie:
Config Serialin = Buffered , Size = 7
.
.
.
Odb = Ischarwaiting()
If Odb <> 0 Then
For L = 1 To 6
Y(L) = Inkey()
Waitms 7
Next L
Y(1) = Asc(y(1))
Y(2) = Asc(y(2))
Y(3) = Asc(y(3))
Y(4) = Asc(y(4))
Y(5) = Asc(y(5))
Y(6) = Asc(y(6))
Zastanawia mnie, czemu pomiędzy odebraniem poszczególnego bajtu musi być opóźnienie "Waitms 7". Jeżeli to usunę lub zmniejszę wartość to uP nie odbierze poprawnie wszystkich bajtów. Tak naprawdę nie ma znaczenia prędkość transmisji - sprawdzałem od 2400 do 58600.
Może ktoś to wyjaśnić lub podać inny (lepszy) sposób odbierania pakietu danych przez sprzętowy uP.
Pozdrawiam
Odbieram pakiet danych (dokładnie 11 bajtów) przez sprzętowy RS232 z prędkością 38400 (uP ATMEGA 128L kwarc-8MHz) w Bascomie:
Config Serialin = Buffered , Size = 7
.
.
.
Odb = Ischarwaiting()
If Odb <> 0 Then
For L = 1 To 6
Y(L) = Inkey()
Waitms 7
Next L
Y(1) = Asc(y(1))
Y(2) = Asc(y(2))
Y(3) = Asc(y(3))
Y(4) = Asc(y(4))
Y(5) = Asc(y(5))
Y(6) = Asc(y(6))
Zastanawia mnie, czemu pomiędzy odebraniem poszczególnego bajtu musi być opóźnienie "Waitms 7". Jeżeli to usunę lub zmniejszę wartość to uP nie odbierze poprawnie wszystkich bajtów. Tak naprawdę nie ma znaczenia prędkość transmisji - sprawdzałem od 2400 do 58600.
Może ktoś to wyjaśnić lub podać inny (lepszy) sposób odbierania pakietu danych przez sprzętowy uP.
Pozdrawiam