DSTART | equ $C100 | kde bude zacatek programu |
OC1M | equ $100C | maska aktivity bitu pri OC1 |
OC1D | equ $100D | registr dat pro aktivitu pri OC1 |
TOC1 | equ $1016 | registr vzoru pro srovnani fce OC1 |
TOC2 | equ $1018 | registr vzoru pro srovnani fce OC2 |
TCTL1 | equ $1020 | prvni ridici registr casovace |
TCTL2 | equ $1021 | druhy ridici registr casovace |
TMSK1 | equ $1022 | prvni registr masky preruseni od casovace |
TMSK2 | equ $1024 | druhy registr masky preruseni od casovace |
IC1I | equ $FFEE | adresa preruseni od IC1 |
IC2I | equ $FFEC | adresa preruseni od IC2 |
org DSTART | zacatecni adresa | |
sei | zakaze vsechny preruseni | |
ldaa #%01111111 | ||
anda TMSK2 | zakaze preruseni pri preteceni citace (INT0) | |
staa TMSK2 | ||
ldaa #%00000110 | ||
staa TMSK1 | zakaze preruseni od komparatoru OCx a povoli preruseni od IC1 a IC2 | |
ldd #$0000 | ||
std TOC1 | vynulovani citace TOC1 | |
ldd #$8000 | ||
std TOC2 | nastaveni citace TOC2 na pulku | |
ldaa #%01000000 | ||
oraa OC1D | ||
staa OC1D | ||
ldaa #%01000000 | ||
oraa OC1M | pri shode TOC1 zapise na PA6 jednicku | |
staa OC1M | ||
ldaa #%10000000 | ||
anda TCTL1 | pri shode TOC2 zapise na PA6 nulu | |
staa TCTL1 | ||
ldd #INTIC1 | ||
std IC1I | nastavi adresu pro zpracovani preruseni od IC1 | |
ldd #INTIC2 | ||
std IC2I | nastavi adresu pro zpracovani preruseni od IC2 | |
ldaa #%00101000 | ||
staa TCTL2 | bude reagovat na zmeny z 0 na 1 u vyvodu PA0 a PA1 | |
cli | povoli preruseni | |
JUMP | jmp JUMP | tady muze byt dalsi program, ted je tu smycka |
INTIC1 | sei | zakazu preruseni |
inc TOC2 | zvetseni delky pulsu | |
bcc END1 | test preteceni | |
dec TOC2 | vrati puvodni hodnotu | |
END1 | cli | povolim preruseni |
rti | navrat | |
INTIC2 | ||
sei | zakazu preruseni | |
dec TOC2 | zmenseni delky pulsu | |
beq END2 | test nulovosti | |
inc TOC2 | vrati puvodni hodnotu | |
END2 | cli | povolim preruseni |
rti |