Bufer pro seriovou linku-

Igor KOPRIVA xkoprivai@seznam.cz
Pátek Květen 21 11:29:20 CEST 2004


ale kdepak. staci jenom zvolit vhodny okamzik kdy testovat jestli je buffer
plny. Implementoval jsem kruhovy buffer na UART pri rizeni RTS/CTS a tam
bylo nutno prijmou jeste alespon 4 znaky po nahozeni RTS (doufam ze jsem
nepopletl, proste po zablokovani vysilani z win). Resenim je po zapsani,
inkrementaci a wrap-up write pointeru bufferu, udelat jeho kopii (treba v
registru) a posunout ho jeste o 4, zase wrap-up a otestit, jestli nahodou
nepredbehne read pointer.
Chodi to celkem spolehlive. Je to ale par operaci navic.
Jenze zakladni pouckou jeste ze skoly je, ze jestli budou pretekat buffery v
aplikaci, tak je spatne navrzena ;-). Neriakm ze se s tim plne ztotoznuji
ale neco na tom bude.

Pokud ale chcete jenom vedet jesli pretekl nebo je prazdny, tak staci
proverit shodu pointeru po zapisu, protoze zapis byva vestinou s vyssi
prioritou, nebo atomicky ( v interruptu ) a vratit priznak jesli doslo k
preteceni nebo ne.

Igor K.


----- Original Message -----
From: "Snail Instruments" <snail@iol.cz>
To: "[HWnews]" <hw-list@mailman.nethouse.cz>
Sent: Friday, May 21, 2004 8:45 AM
Subject: Re: Bufer pro seriovou linku-


> >funkci kruhoveho bafru. Staci Vam prece dva pointry - jeden pro zapis,
> >druhy pro cteni.
>
> Me se vice osvedcilo uchovavat index pocatecniho znaku a pocet znaku v
bufferu. Pokud totiz uchovavame pointery, rovnosti pointeru odpovidaji dva
stavy - budto uplne prazdny nebo uplne plny buffer a je potom treba dalsi
promenna k rozliseni techto stavu.
>
> J. Hanzal
>
>
>


----------------------------------------------------------------------------
----


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
HW-list@mailman.nethouse.cz
http://nethouse.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list