[elektro] USB - RS232 nagyon nem megy
Borza Attila
attila.borza at t-online.hu
Wed Mar 10 11:01:42 CET 2010
a baudrate jó, azon már túl vagyok
mível a küldés szünet aránya viszonylag nagy 1:10 ezért könnyű, a szünet
utáni első byte az első
igazából egyszerűen akartam megoldani, de ha így halad, akkor tényleg
bytonkénti kezelés lesz :(
----- Original Message -----
From: "Moczik Gabor" <pm_levlista at progzmaster.hu
Nézz rá azért szkóppal a TXD lábra, hogy tényleg annyi-e az a baud rate
amennyinek lennie kell.
> Igazából az a bajom, hogy 4 , 9, éa 12 bytos csomagok mennének át PC-re,
> visszafele meg csak 4 bytosak, igazából gondolkodtam rajta, hogy bytonként
> kezelem, csak akkor macerásabb, mert az első byte mindig egy parancs, a
> többi meg az adott parancshoz tatozó adat. Igaz már gondolkodtam rajta,
> amit
> mondtál, hogy 9 biteseket küldök, és jelölöm a parancsot, de nem szeretnék
> még ezel is külön foglalkozni, hogy számolgatom, hogy éppen melyik parancs
> után hány byte érkezett meg, illetve ami miatt még nem biztos, hogy ez
> működne, hogy nem mindig jöttek át megfelelő értékek, tehát, ha bytonként
> is
> kezelném le, akkor is lennének benn hibás adatok.
Sajnos szerintem ezt csak így fogod tudni megoldani. Honnan tudod melyik
az első byte, van valami csomag eleje/csomag vége szinkron karakter?
Arra ne alapozz, hogy a FIFO-ba belefér az egész csomag, vagy ha bele is
férne, akkor nem valószínű hogy kivárja a driver (ez így jobb is) az
összes byte-ot mire megszakítást kapsz.
Én úgy csinálom, hogy amint jön egy byte azonnal kiolvasom, a működési
állapottól függően azonnal le is kezelem. Sajnos kiesik a szinkronból a
rendszer, ha elvész egy byte vagy valami történik és nincs egyértelmű
szinkron karakter, úgyhogy jó ha timeout-ot is teszel hozzá, hogy
mittudomén, a csomag elejétől számított x időn belül ha nem ér ide a
vége, akkor eldobod az egészet, és alaphelyzet.
Nem ártana egy checksum se a végére...
--
((( Móczik Gábor )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))
-----------------------------------------
elektro[-flame|-etc]
More information about the Elektro
mailing list