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