Pájův sklep

Tady jsem umístil krátký prográmek pro mikrořadič 68HC11. Je to ptákovinka resp. zápočtový program na vytvoření pulsního generátoru. Časová základna běží na konstantním kmitočtu daném vztahem f=1/(65536*E), kde E je vnitřní pracovní frekvence mikrořadiče. Více muže napovědět blokové schéma vnitřních čítačů a časovačů.
Generátor se ovládá pomocí dvou tlačítek UP a DOWN připojených na port PA2 resp. PA1 a společně pak na vývod PA6, kde je i výstup generátoru. Obsluha tlačítek je pomocí systému přerušení od vnitřních čítačů IC1 a IC2, které generují přerušení, jenž zvýší resp. sníží střídu výstupního signálu.

DSTARTequ $C100kde bude zacatek programu
OC1Mequ $100Cmaska aktivity bitu pri OC1
OC1Dequ $100Dregistr dat pro aktivitu pri OC1
TOC1equ $1016registr vzoru pro srovnani fce OC1
TOC2equ $1018registr vzoru pro srovnani fce OC2
TCTL1equ $1020prvni ridici registr casovace
TCTL2equ $1021druhy ridici registr casovace
TMSK1equ $1022prvni registr masky preruseni od casovace
TMSK2equ $1024druhy registr masky preruseni od casovace
IC1Iequ $FFEEadresa preruseni od IC1
IC2Iequ $FFECadresa preruseni od IC2
org DSTARTzacatecni adresa

* provedeme nejdrive nastaveni generatoru
seizakaze vsechny preruseni
ldaa #%01111111
anda TMSK2zakaze preruseni pri preteceni citace (INT0)
staa TMSK2
ldaa #%00000110
staa TMSK1zakaze preruseni od komparatoru OCx a povoli preruseni od IC1 a IC2
ldd #$0000
std TOC1vynulovani citace TOC1
ldd #$8000
std TOC2nastaveni citace TOC2 na pulku
ldaa #%01000000
oraa OC1D
staa OC1D
ldaa #%01000000
oraa OC1Mpri shode TOC1 zapise na PA6 jednicku
staa OC1M
ldaa #%10000000
anda TCTL1pri shode TOC2 zapise na PA6 nulu
staa TCTL1

* timto je dokonceno nastaveni generatoru
* zacneme se zabyvat zmenou sirky generovaneho pulsu
ldd #INTIC1
std IC1Inastavi adresu pro zpracovani preruseni od IC1
ldd #INTIC2
std IC2Inastavi adresu pro zpracovani preruseni od IC2
ldaa #%00101000
staa TCTL2bude reagovat na zmeny z 0 na 1 u vyvodu PA0 a PA1
clipovoli preruseni
JUMPjmp JUMPtady muze byt dalsi program, ted je tu smycka

* tady jsou podprogramy pro zpracovani preruseni od klavesnice
* pricitani, odcitani citace
INTIC1seizakazu preruseni
inc TOC2zvetseni delky pulsu
bcc END1test preteceni
dec TOC2vrati puvodni hodnotu
END1clipovolim preruseni
rtinavrat 
INTIC2
seizakazu preruseni
dec TOC2zmenseni delky pulsu
beq END2test nulovosti
inc TOC2vrati puvodni hodnotu
END2clipovolim preruseni
rti


Jinak si můžete stáhnout i tento prográmek tady.

A tady mě můžete poslat poštu autoru - Pavel Škorpil