In article <[email protected]>, Salamon Attila <[email protected]> writes: > > Sziasztok! > > Egy Atmel ATNGW100 -as lapon futtatott linux -on dolgozom. Az egyik > plusz soros portj=E1n van egy rs485 -=F6s busz-meghajt=F3 IC. Alapvet=F5en > m=FBk=F6dik a dolog, csak: > > =CDr=E1s -> olvas=E1s ir=E1nyv=E1lt=E1skor a read() mindig visszaolvas egy = > byte -ot, > ami nincs is ott. (Nulla az =E9rt=E9ke.) R=E1ad=E1sul j=F3val kor=E1bban, m= > int ahogy > a slave valamit is visszak=FCldene. Ha csak v=E1ltogatom az ir=E1nyt, > ann=E9lk=FCl, hogy kik=FClden=E9k valamit, 90% -ban megjelenik az az egy by= > te.
A csupa nulla alighanem egy break eredménye. Ellenõrizd a Line Status Registert! (ld. alább) A break következménye ugyanis egy frame erroros 00 byte. Azt el kell dobni. > Hogy tudhatom azt meg, hogy a write() -al a soros portra k=FCld=F6tt adatok > legutols=F3 bitje mikor ment ki a soros vonalon? Legjobb lenne, ha a write > blokkol=F3dna addig, am=EDg ez meg nem t=F6rt=E9nt. Ha ez 8250 kompatibilis UART, akkor a Line Status Register 6-os bitje pont ezt jelzi. A célhardveredhez egy megfelelõ drivert kellene barkácsolni, az lenne a korrekt megoldás. g _________________________________________________ linux lista - [email protected] http://mlf2.linux.rulez.org/mailman/listinfo/linux
