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

válasz