hcs12 in etc
Post on 20-Jan-2016
71 Views
Preview:
DESCRIPTION
TRANSCRIPT
http://vision.fe.uni-lj.si/classes/GSPV
GSPV (10-a)
HCS12, časovniki
in ECT
Stanislav Kovačič
Univerza v Ljubljani
Fakulteta za elektrotehniko
HCS12 in ETCHCS12 in ETC
Prosto tekoči števec (angl. Free Running Counter):16 bitni števni register, ki krožno teče z osnovnim taktom časovnika.
Vhodno prestrezanje (angl. Input Capture): ob aktivnem prehodu na prestreznem vhodu se v prestrezni register
prepiše vrednost števnega registra.
Izhodno primerjanje (angl. Output Compare):ko se vsebina števnega registra izenači s prednastavljeno vrednostjo
primerjalnega registra, se postavi signal na ustreznem izhodnem kanalu.
Pulzni akumulator (amgl. Pulse Accumulator):omogoča štetje dogodkov na vhodnem kanalu, ali merjenje časovnega
intervala med dvema (tipično hitrima) dogodkoma na vhodnem kanalu.
HCS12 – ETC (PIM)HCS12 – ETC (PIM)
Prestrezni ali
primerjalni
kanali
časovnika
Časovnik ETC
HCS12 - ETC na hitroHCS12 - ETC na hitro
Do 8 prestreznih kanalov,torej do 8 16-bitnih prestreznih registrov.
Do 8 primerjalnih izhodov,torej do 8 16-bitnih primerjalnih registrov.
Štiri 8 bitne ali dva 16 bitna pulzna akumulatorja. Veliko možnosti pri izbiri osnovnega takta.
S tem se doseže velik časovni razpon in/ali primerna
časovna ločljivost.
Veliko načinov delovanja:poleg osnovnih funkcij (to je prestrezanja in generiranja
signalov), daje veliko dodatih (specifičnih) možnosti
predvsem kanal 7.
HCS12 – ETC HCS12 – ETC (blokovna shema)(blokovna shema)
HCS12 – ETC HCS12 – ETC registriregistri
HCS12–ETC HCS12–ETC izbira taktaizbira takta
Notranji takt
Zunanji
takt
na kanalu 7
bit v registruTSCR1
biti v registruTSCR2
to se nanaša registre pulznih akumulatorjev
HCS12–ETC HCS12–ETC izhodno primerjanjeizhodno primerjanje
(1)
Ko se časovni števec (TCNT)
izenači s
primerjalnim registrom (TCn)
Prikaz delovanja za
n-ti (n=0,1,...,7) kanal
(2)
Če je izbran
primerjali način
(TIOS)
(3)
se postavi
zastavica
(TFLG1)
(4)
in pride do
prekinitve, če jo
omogoča (TIE)
(5)
izhod pa
se odzove, kot
določa
TCTL1/TCTL2
HCS12–ETC HCS12–ETC vhodno prestrezanjevhodno prestrezanje
(5)
Časovni števec (TCNT)
se prepiše v
primestrezni registrer (TCn)
Prikaz delovanja za
n-ti (n=0,1,...,7) kanal
(2)
Če je izbran
prestrezni način
(TIOS)
(4)
in pride do
prekinitve, če jo
omogoča (TIE)
(1)
če je na vhodu
aktivna sprememba
kot jo določata
TCTL3/TCTL4
(3)
se postavi
zastavica
(TFLG1)
HCS12 – delo z ETCHCS12 – delo z ETC
• Delo s časovniki je spričo številnih možnosti precej zapleteno. • Izberemo vir/frekvenco osnovnega takta (tipično E),
register TSCR2.• Določimo prestrezne vhode in/ali primerjalne vhode,
register TIOS. • Določimo aktivne prehode na prestreznih vhodih in/ali
stanje na primerjalnih izhodov, TCTL1/2/3/4.• Po potrebi - tipično, omogočimo prekinitve,
register TIE.
• (Ne smemo pozabiti omogočiti delovanje
celotnega časovnega modula) TSCR1.
HCS12 – ETC HCS12 – ETC nekaterinekateri registriregistri
Določimo, kateri kanali bodo prestrezni in kateri primerjalni
register TIOS:
IOS_i = 1, primerjalni izhod
IOS_i = 0, prestrezni vhod
HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri
Omogočimo/onemogočimo (ustavimo) delovanje časovnika:
Kontrolni register časovnega modula: TSCR1,
TEN = 1.
HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri
Izberemo preddelilno razmerje:
Kontrolni register časovnega modula: TSCR2
Izbere preddelilno razmerje.
Omogoči zahtevo za prekinitev
preplavitve časovnega števca
Register zastavice preplavitve časovnega števca: TFL2
HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri
Določimo delovanje izhodnih kanalov:
Kontrolni register časovnika: TCTL1/TCTL2
izhod odklopljen, sprememba izhoda, izhod nizek ali visok.
HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri
Določimo delovanje vhodnih kanalov:
Kontrolni register časovnika: TCTL3/TCTL4
vhod odklopljen, spremba gor ali dol ali vsaka.
HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri
Omogoči zahtevo za prekinitev ustreznega kanala:
Register prekinitvenih mask: TIE
Obravnavamo dogodke časovnika
Preverjamo zastavice ustreznih kanalov in/ali prekinitev:
Register prekinitvenih zastavic: TFLG1
Zastavica ustreznega kanala se briše z vpisom enice !
HCS12 – ETC HCS12 – ETC primerprimer
TIOS equ ECTBase ;IC ali OC
TCNT equ ECTBase+$04 ;časovni števec
TIE equ ECTBase+0c ;omogočimo prekinitve
TCTL2 equ ECTBase+09 ;obnašanje izhodov
TSCR1 equ ECTBase+$06 ;kontr.r. modula, TE
TSCR2 equ ECTBase+$0d ;kontr.r. modula, preddelilnik
TFLG1 equ ECTBase+$0e ;zastavice
TC0 equ ECTBase+10 ;OC register kanala 0
movb #$80,TSCR1 ;omogočimo časovnik
movb #$01,TIOS ;Kanal 0 naj bo OC
movb #$01,TCTL2 ;spreminjanje izhoda
movb #$01,TIE ;omogočimo prekinitev kanala 0
ldd #Perioda
std TC0
movb #$01,TFLG1 ;brišemo zastavico
cli
bra *
Generiranje
pravokotnega
impulza
Seveda pa manjka
še prekinitveni
strežnik in
def.
prekinitvenega
vektorja
HCS12 – ETC HCS12 – ETC registriregistri
top related