Jak resit bufferovani UARTU v MCU

Jan Waclawek wek@evona.sk
Čtvrtek Březen 23 10:44:31 CET 2006


RV wrote:
ad protokol... ak by som ja nieco taketo robil, pokusim sa pouzit nejaku 
podmnozinu prikazov VT52/VT100 alebo nejakeho ineho terminaloidneho 
standardu; ale to je asi vec vkusu, zasa az taky hrozne prakticky vyznam 
to nema.

> 
> S tim souvisi jedna nepekna vec, na kterou jsem prisel az kdyz jsem psal 
> obsluhu displeje do programu k meteostanici. Kdyz poslu totiz prikazy do 
> displeje hned po sobe tak o ten druhej prikaz prijdu, protoze v tu 
> chvili zpracovavam 24 bajtovy buffer (4 parametry a 20znaku) a nemuzu 
> cist UART.
> 
> Premyslim jak to lze vyresit - zatim me napadla jen jedina vec - 
> rozsirit buffer na celej zbytek RAM (asi jeste 150B) s tim, ze tohle 
> proste nesmi pretect a implementovat jeste prikaz pro zpracovani 
> bufferu. Nechci totiz pouzit zadnou zpetnou linku z displeje. Je jeste 
> nejake jine reseni? At dumam jak dumam nic me nenapadlo.

No, ak ste vylucili "spätnú linku" (t.j. handshake, ci uz HW alebo SW), 
tak ostava jedine zabezpecit, aby ste stihli spracovat prichadzajuce 
byte a nasledne prikazy dostatocne rychlo. To prve pouzitim prerusenia, 
to druhe preratanim si kolko trva vykonanie najdlhsieho prikazu a 
"organizacnym" zabezpecenim, aby nestihol prijst cely nasledujuci prikaz 
rychlejsie ako sa vykona predchadzajuci (bud vhodne nizkou baudovou 
rychlostou, alebo vhodne rychlym vykonavanim prikazov :-) alebo musi 
vysielajuca strana vediet ze musi robit medzery).

wek



Další informace o konferenci Hw-list