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