Logo Studenta

Leitura de Sinal de Período Curto

¡Estudia con miles de materiales!

Vista previa del material en texto

;ler período do sinal <128ms 
;fcpu = 4MHz 
 absentry inicio 
ram equ $1000 
rom equ $4000 
nb equ 8 
vreset equ $fffe 
stkf equ $3fff 
tstk equ nb*4 
stki equ stkf-tstk+1 
tios equ $40 
tscr1 equ $46 
tctl4 equ $4b 
tscr2 equ $4d 
tflg1 equ $4e 
tc0 equ $50 
;---área de stack 
 org stki 
stack ds.b tstk 
;variáveis, constantes, etc 
 org ram 
t_in ds.b 2 
t_fi ds.b 2 
t_pe ds.b 2 
vaux dc.b 0 
;---programa 
 org rom 
inicio lds #stkf+1 
 bclr tscr2,$03 ;pr1:pr0 = 00 
 bset tscr2,$04 ;pr2 = 1 (fcpu/16) 
 bclr tios,$01 ;ic0 = input capture 
 bclr tctl4,$02 ;edg0b = 0 
 bset tctl4,$01 ;edg0a = 1 (captura:rising edge) 
 bset tscr1,$80 ;ten = 1 (inicia contagem) 
;---aguardar eventos 
;pk1 brclr tflg1,$01,pk1 ;ic0f = 0? 
pk1 ldaa tflg1 ;dica p/ testar ic's 
 oraa vaux 
 beq pk1 
 ldd tc0 ;d = tc0 
 std t_in ;salvar instante inicial 
 bsr zflag ;ir p/ sub-rotina zflag 
;--- 
;pk2 brclr tflg1,$01,pk2 ;ic0f = 0? 
pk2 ldaa tflg1 
 oraa vaux 
 beq pk2 
 ldd tc0 
 std t_fi 
 bsr zflag 
;---calcular período 
 ldd t_fi 
 subd t_in 
 std t_pe 
 jmp pk1 
;---subrotina zflag 
zflag pshc 
 psha 
 ldaa #$01 
 staa tflg1 
 pula 
 pulc 
 rts 
;---vetores 
 org vreset 
reset_ dc.w inicio 
 end 
 
;uso RTI 
;usar processo de recenseamento 
;fxtal = 8MHz 
;---atribuições 
 absentry inicio 
ram equ $1000 
rom equ $4000 
nb equ 8 
vreset equ $fffe 
portb equ $1 
ddrb equ $3 
crgflg equ $37 
rtictl equ $3b 
;variáveis, constantes, etc 
 org ram 
vaux dc.b $0f 
;---programa 
 org rom 
inicio movb #$ff,ddrb ;cfg.ddrb = $ff, (portb(intei 
 movb #0,portb ;ci. portb = 00 
 movb #$10,rtictl ;frti = 8MHz/1024;inicia con 
;--- 
pk0 ldab #4 ;contador auxiliar 
pk1 brclr crgflg,$80,pk1 ;rtif = 0? 
 ldaa #$80 ;a = $80 (zerar rtif!!) 
 staa crgflg ;rtif = 0 (zerado) 
 decb 
 bne pk1 
 ldaa vaux 
 staa portb 
 eora #$ff ;alternar conteúdo de vaux 
 staa vaux ;atualizar vaux 
 lbra pk0 ;reciclar 
;---vetores 
 org vreset 
reset_ dc.w inicio 
 end

Continuar navegando