Listado 6. Listado del Programa de Control de Velocidad (página 4 de 4)
02A7 1408
02A9 B6E0
02AB 2603
02AD 1F00
02AF 80
02B0 1E00 RTIInt2
02B2 A1FF
02B4 270D
02B6 AE10
02B8 42
02B9 B7E2
02BB BFE1
02BD 27D9
02BF 1608
02C1 1A08
02C3 80
RTIInt3
;**********************************************************
03F8
03F8 028D
03FA 0200
03FC 0200
03FE 0200
BSET
RTIFR,TSCR
LDA
DesiredPWM
BNE
RTIInt2
BCLR
PWM,PortA
RTI
BSET
PWM,PortA
CMPA
#Percent100 ;¿És PWM deseado duty = 100%?
BEQ
RTIInt3
LDX
#16
MUL
STA
PWMFine
STX
PWMCoarse
BEQ
TOFInt1
BSET
TOFR,TSCR
BSET
TOIE,TSCR
RTI
ORG
Vectors
FDB
TimerInt
FDB
Start
FDB
Start
FDB
Start
111
;Borra el Flag interr. RT
;¿Logra el nivel deseado PWM = 0?
;No,. Pone la salida = 1
;Pone la salida = 0, duty es 0%
;Vuelve de la interrupción
;Salida PWM =1, duty > 0%
;Si, Salida siempre = 1
;No, Pone 4-bits superiores de
;DesiredPWM en los 4-bits bajos
;de X y los 4bits bajos de
;DesiredPWM en los 4-bits
;superiores de A.
;Guarda resultado PWMFine
;Guarda resultado en PWMCoarse
;Si PWMCoarse=0, ir a la 2ª mitad
;de la rutina TOF
;Borra el Flag de Desbordamiento
; del Timer
;reactiva la interrupción TOF
;Vuelve desde interrupción RTIF
;Vectores de reset e Interrupción
;Rutina de interrupción del Timer
;IRQ Externa (No usada)
;Vector SWI (No usada)
;Vector de Reset