Nejaky lepsi procesor

Marcel Klein klein
Středa Březen 17 12:05:16 CET 2004


Zjednodusene zapisane mam to iste uspesne pouzite v jednom projekte v C a
sam som bol prijemne prekvapeny kolko toho jednocip potom zvlada "naraz"
robit. Podmienkou vsak je aby potom ziadny jeden "task" alebo usek programu
nesmel cakat alebo pracovat dlhsie a sam sa musel vzdat casu (a zapametat si
stav kde skoncil aby potom mohol pokracovat), aby mohli ostatne "tasky"
pracovat a vysledok bol plynuly beh "vsetkych sucasne". Na taketo pravidelne
cyklenie vsetkych taskov dohliadal Watchdog. Nevyhoda je potom v tom ze
algoritmus ktory potrebuje zlozitejsie casovanie (napr. vytvaranie nejakeho
protokolu), ktory by mohol byt pri linearnom zapise jednoducho napisany sa
do tohto "multitaskingu" zlozito zapisuje.
Emsi

----- Original Message -----
From: "Snail Instruments" <snail@iol.cz>
To: "Multiple recipients of list" <hw-news@list.gin.cz>
Sent: Wednesday, February 14, 2001 11:41 AM
Subject: Re: Nejaky lepsi procesor


> >> >No a kdyz je v RAM malo
> >> >mista a je misto v code, pisu to jako v bejziku.
> >> Jak psani v bejziku usetri RAM mi unika...
> >Misto abych delal nekolik vnorenych volani podprogramu, pisu to ve
> >vyjimacnych pripadech (temer) vsechno pekne za sebou. No a procesory 51
maji
> >stack v datove ramce, tedy se mi tam vejde vic promennych. Vede to k
tomu,
> >ze se v code nektere veci obcas opakuji, takze se zase tam zere misto. No
a
> >basic se svymi goto presne toto podporoval. Nejde o volbu jazyka, ale o
> >filosofii pristupu k programovani.
>
> Ja pouzivam metodu, kterou muzeme nazvat 'kooperativni multitasking', ale
> na nazvu nesejde. Rekneme, ze obcerstveni displeje nejakeho meridla je
> treba udelat v rade mist - pri zmereni nove hodnoty, pri zmene modu
> mereni<->nastaveni, pri zmene nastavovane veliciny, pri automatickem
> prechodu mezi jednotlivymi rezimy. Pokud budu volat proceduru zobrazeni z
> kazdeho mista, budu zbytecne cerpat zasobnik, pokud ji okopiruji namisto
> kazdeho volani, budu zbytecne plytvat pameti programu. Vypada to asi
takto:
>
> bit display;
>
> main:
> ...
>
> klavesnice:
>   ...
>   if (zmena modu) display=1;
>   ...
>   if (zmena hodnoty) display=1;
>   ...
>
> mereni:
>   ...
>   if (nova hodnota) display=1;
>   ...
>
> timer:
>   ...
>   if (automaticka zmena rezimu) display=1;
>   ...
>
> display:
>   if (display){
>     display=0;
>     zobraz data;
>   }
>
> goto main
>
> J. Hanzal
>
>
> =======================================================================
> Electronical devices for chemical laboratory, custom electronics design
> -----------------------------------------------------------------------
> Snail Instruments                      Josef Hanzal, M. S.
> Vojanova 615                           phone/fax: +420-311-624433
> 266 01 Beroun                          e-mail: snail@iol.cz
> Czech Republic                         URL: http://www.vitrum.cz/snail/
> GPS: 49deg58'28" North, 14deg 4'35" East
> =======================================================================
>
>






Další informace o konferenci Hw-list