Zilog
Snail Instruments
snail
Středa Březen 17 11:53:54 CET 2004
>> I kdyz musim rici, ze aplikaci, kde by byla povolena vice nez dve preruseni
>> jsem snad jeste nedelal. Takove ty marketingove trhaky jako "12 zdroju
>> preruseni" - no, myslim, ze vsechny soucasne jsou asi malokdy vyuzivany.
>>
>> J. Hanzal
>
>Vsechny soucasne asi ne, ale ve vetsine pripadu je aplikace s
mikrokontrolerem
>delana prave proto,
>ze ma zpracovavat signaly na hw urovni asynchronnim zpusobem, tedy pres
>preruseni. Tudiz si dovolim tvrdit, ze ty "marketingove trhaky" jsou vzdycky
>prvni veci, na kterou se divam, pokud delam novou aplikaci. Mezi nami,
normalni
>prumerna '51 aplikace sezere pomerne mnoho preruseni. Treba seriak, je li tam
>nejake to tlacitko, nebo napojeni na prevodnik, tak
>INT0, popr. T0...
>Zalezi na oboru, ve kterem jsou aplikace vytvareny. Bezne delam na '51 se
vsemi
>prerusenimi, ktere to ma.
To je zajimavy pristup, v extremnim pripade nebude hlavni smycka delat nic
a vsechno se odehraje pri preruseni. Ja se naopak snazim co nejvice veci
obslouzit v hlavni smycce programu, vcetne tlacitek a seriove linky, mam
pro to celkem dobre duvody. Tlacitka se testuji pravidelne nejakych 10ms
pri preteceni casovace, ovsem nikoliv pri preruseni, ale az na ne dojde
rada v hlavni smycce programu. Zrovna tak seriova linka, tady testuji
pravidelne prichod noveho byte, ulozim do bufferu, pokud je prikaz
kompletni, tak se provede. Celkem dobre se mi to pise. Pseudokod by vypadal
asi takto:
main:
if TCNT0 overflow
nacti tlacitka
porovnej s predchozim stavem
zpracuj pripadne zmeny stavu
if SerialCharIn
echo (podle potreby)
zarad do buferu
if znak=='\r' (nebo jina podminka)
zpracuj prikaz
obsluz dalsi ulohy...
goto main
Samozrejme take zalezi na maximalni pripustne odezve na vnejsi podnet,
konkretne u tlacitek si jeste nikdo nestezoval, ze by 10ms byla prilis
dlouha odezva ;-) Seriovou linku take nema smysl obsluhovat casteji, nezli
muze novy znak prijit, pri 9600Bd asi 1-2ms, podle hloubky FIFO.
Jeste k tomu Zilogu, nekdo tu srovnaval Z80 s jednocipem, to je dost
nesrovnatelne, Z8 a Z80 je podstatny rozdil, byt se lisi jenom o nulu.
J. Hanzal
=======================================================================
Electronical devices for chemical laboratory, custom electronics design
-----------------------------------------------------------------------
Snail Instruments Josef Hanzal, M. S.
Vojanova 615 phone/fax: +420-311-24433
266 01 Beroun e-mail: snail@iol.cz
Czech Republic URL: http://www.vitrum.cz/snail/
=======================================================================
Další informace o konferenci Hw-list