📄 kaihuan.asm.bak
字号:
CLRC INTM
LACC T2CNT
LDP #PAGE_VAR
BIT FLAG0,13
BCND EVCINT1,NTC ;IF SECOND CAPTURE, B EVCINT1
SACL WTIME0
LDP #DP_EV
SPLK #0000H,T3CNT ;CLEAR T3CNT
SPLK #9870H,T3CON ;ENABLE T3
LDP #PAGE_VAR
B EVCINTZ
EVCINT1:
SUB WTIME0
SACL WTIME
LDP #DP_EV
BIT GPTCON,0
SPLK #9830H,T3CON ;UNENABLE T3
BCND EVCINT4,TC ;IF INCREASE COUNT, B EVCINT4
LDP #PAGE_VAR
LACL FLAG0
AND #0FFF7H ;CLEAR FLAG.4=0,DECREASE COUNT FLAG
SACL FLAG0
B EVCINT5
EVCINT4:
LDP #PAGE_VAR
LACL FLAG0
OR #0008H ;SET FLAG.4=1,DECREASE COUNT FLAG
SACL FLAG0
EVCINT5:
LDP #DP_EV
LACC T3CNT
LDP #PAGE_VAR
ABS
SACL WPULSE
LT WPULSE
SPLK #MK,MK1 ;M/T METHOD'S COEFFICIENT
MPYU MK1
PAC
RPT #15
SUBC WTIME
BIT FLAG0,12
BCND EVCINT6,TC
NEG
EVCINT6:
MAR *,AR6
SACL *+
LAR AR0,#WR_R7 ;SEND SPEED VALUE TO WR_R0 ~7
CMPR 2
BCND EVCINTZ,NTC
LAR AR6,#WR_R0
EVCINTZ:
SETC INTM
MAR *,AR7
LACL *+
LACL *+
LT *+
MPY #1
LPH *
SACL *
LT *+
LACL *+
LDP #DP_0
SACL IMR
LAR AR0,*+
LACL *+
ADDH *+
LST #ST0,*+
LST #ST1,*
CLRC INTM
RET
EVBINT:
MAR *,AR7
SST #ST1,*-
SST #ST0,*-
SACH *-
SACL *-
SAR AR0,*-
SAR AR1,*-
LDP #DP_0
LACC IMR
SACL *-
SPH *-
SPL *-
MPY #1
SPL *-
SPLK #02H,IMR
CLRC INTM
LDP #DP_EV
LAR AR0,EVIVRB
LACL EVIVRC
LDP #DP_0
SPLK #08H,IFR
LDP #DP_EV
LACL EVIMRC
OR #0004H ;OPEN CAPTURE
SACL EVIMRC
MAR *,AR1
LAR AR1,#002BH
CMPR 0
BCND T2PINT,TC ;IF PERIOD INTERRUPT,B T2PINT
LAR AR1,#002CH
CMPR 0
BCND T2CINT,TC ;IF COMPARE INTERRUPT,B T2CINT
B EVBINTZ
T2PINT:
LDP #DP_EV
LACL EVIMRB
OR #0002H ;OPEN COMPARE
SACL EVIMRB
LACL T2CON
OR #0002H ;ENABLE COMPARE
SACL T2CON
LDP #PAGE_VAR
LACC FLAG0
OR #04H ;SET FLAG.2=1, FIRST CAPTURE
SACL FLAG0
B EVBINTZ
T2CINT:
LDP #DP_EV
LDP #PAGE_VAR
LACL FLAG0
AND #0FFFBH ;CLEAR FLAG.2=0,SECOND CAPTIRE
OR #8000H
SACL FLAG0
EVBINTZ:
SETC INTM
MAR *,AR7
LACL *+
LACL *+
LT *+
MPY #1
LPH *
SACL *
LT *+
LACL *+
LDP #DP_0
SACL IMR
LAR AR1,*+
LAR AR0,*+
LACL *+
ADDH *+
LST #ST0,*+
LST #ST1,*
CLRC INTM
RET
EVAINT:
MAR *,AR7
SST #ST1,*-
SST #ST0,*-
SACH *-
SACL *-
SAR AR0,*-
SAR AR1,*-
SPH *-
SPL *-
MPY #1
SPL *-
LDP #DP_EV
LACC EVIVRA,1
AND #01FH
ADD #ADRESS_EVA
BACC
ADRESS_EVA:
B PDPINT
B EVAINTZ
B EVAINTZ
B EVAINTZ
B EVAINTZ
B EVAINTZ
B EVAINTZ
B EVAINTZ
B EVAINTZ
B PWMINT
B EVAINTZ
EVAINTZ:
MAR *,AR7
LACL *+
LACL *+
LT *+
MPY #1
LPH *
SACL *
LT *+
LAR AR1,*+
LAR AR0,*+
LACL *+
ADDH *+
LST #ST0,*+
LST #ST1,*
CLRC INTM
RET
;-------------------- ERROR PROTECT--------------------------
PDPINT:
SPLK #0FFFH, ACTR ; CLOSE PWM1-6
LDP #DP_PF1
SPLK #0D0DH, PADATDIR ;J1=J2=OFF
LDP #PAGE_VAR
SPLK #8181H, GPR0
OUT GPIR, LED1
OUT GPIR,LED1
SPLK #0FFFFH, GPIR
OUT GPIR, LED2
OUT GPIR,LED2
LDP #PAGE_VAR
IN SWITCH_ST,SWITCH
LACC SWITCH_ST
AND #0FF00H
SACL SWITCH_ST
CALL ERROUT ;ERROR PROCESSING
CALL DISERR ;DISPLAY THE NUMBER OF ERROR
ER:
B ER
;=============PWM INT=============
PWMINT:
LDP #PAGE_VAR
IN SWITCH_ST,SWITCH
BIT SWITCH_ST,9
BCND FRELP,TC
LACC THITA
SUB DELTA
SACL THITA
LACC THITA
BCND PWM1,GT
ADD #DEGREE360
SACL THITA
B PWM1
FRELP:
LACC THITA
ADD DELTA
SACL THITA
MAR *,AR1
LAR AR1,THITA
LAR AR0,#DEGREE360
CMPR 1
BCND PWM1,TC
SUB #DEGREE360
SACL THITA
PWM1:
LACC UDQTHITA
ADD THITA
SACL USTHITA
MAR *,AR1
LAR AR1,USTHITA
LAR AR0,#DEGREE360
CMPR 1
BCND PWM2,TC
SUB #DEGREE360
PWM2:
SACH SECTOR,7
AND #1FFH
SACL USTHITA
;*****************SEARCH SPACE VECTOR*****************
LACC SECTOR
ADD #SVTAB
TBLR SECTOR
;*****************SEARCH SINL $ SINM*************************
LACC #DEGREE60
SUB USTHITA
ADD #SINTAB
TBLR SINL
LACC USTHITA
ADD #SINTAB
TBLR SINM
;***********SEARCH TL & TM********************
LAR AR0,#4095
LACC USG,12
RPT #15
SUBC ED
SACL MD
MAR *,AR1
LAR AR1,MD
CMPR 2
BCND PWM3,NTC
SPLK #4095,MD
PWM3:
LT MD
MPYU SINL
PAC
SACH TL
MAR *,AR0
LAR AR0,#CMPR1
SACH *
MPYU SINM
PAC
SACH TM
LACC TM
ADD TL
LAR AR0,#CMPR2
SACL *
LACC SECTOR
LAR AR0,#ACTR
SACL *
;*******************************************???????????????
LACC TCON
ADD #1
SACL TCON
LACC CNT
ADD #1
SACL CNT
;********************************************???????????????
B EVAINTZ
ADCOMINT:
MAR *,AR7
SST #ST1,*-
SST #ST0,*-
SACH *-
SACL *-
SAR AR0,*-
SAR AR1,*-
SPH *-
SPL *-
MPY #1
SPL *-
;*********************
LDP #DP_PF0
LAR AR1,SYSIVR
LAR AR0,#01H
MAR *,AR1
CMPR 0
BCND INTRUPT1,TC
LAR AR0,#04
CMPR 0
BCND ADCINT,TC
B ADCINTZ
;**********************************
INTRUPT1:
LDP #PAGE_VAR
IN PB_STATUS,PB
LACL PB_STATUS
RPT #3 ;SHIFT RIGHT 4 BITS
SFR
AND #00FFH
SACL FGD
LAR AR0,FGD
LAR AR1,#50H
MAR *,AR1
CMPR 1
BCND XIANFU,NTC
SPLK #50H,FGD
XIANFU:
B ADCINTZ
;****************************************
ADCINT:
CLRC SXM
LDP #DP_EV
SPLK #080H,EVIFRA
LDP #DP_PF0
LACC ADCFIFO1,12
MAR *,AR4
SACH *+
LAR AR0,#EDS7
CMPR 2
BCND ADCINT5,NTC
LAR AR4,#EDS0
ADCINT5:
SETC SXM
LDP #PAGE_VAR
LACC #0
LAR AR1,#EDS0
MAR *,AR1
RPT #7
ADD *+
SACL EDS
;############
LDP #DP_PF0
LACC ADCFIFO1,10
LACC ADCFIFO2
LACC ADCFIFO2
SPLK #0004H,ADCTRL2 ;CURRENT SAMPLE SPRINGED BY T1PINT
SPLK #3A48H,ADCTRL1
;*********************
LDP #PAGE_VAR
LAR AR0,EDS
LAR AR1,#6018H;#55F0H;(380)
MAR *,AR1
CMPR 1
BCND ADC,NTC
LDP #DP_PF1
SPLK #0D00H,PADATDIR
ADC:
;*************************
LDP #PAGE_VAR
LAR AR0,EDS
LAR AR1,#5014H
MAR *,AR1
CMPR 1
BCND ADC11,TC
LDP #DP_PF1
SPLK #0D01H,PADATDIR
ADC11:
;*****************************
ADCINTZ:
LDP #PAGE_VAR
SETC SXM
LACC THITA
SACL OUT0
OUT OUT0,DAC0
;OUT OUT1,DAC1
;OUT OUT2,DAC2
;OUT OUT3,DAC3
OUT OUT0,DACUPDT
MAR *,AR7
LACL *+
LACL *+
LT *+
MPY #1
LPH *
SACL *
LT *+
LAR AR1,*+
LAR AR0,*+
LACL *+
ADDH *+
LST #ST0,*+
LST #ST1,*
CLRC INTM
RET
.INCLUDE SVPWMTAB.ASM
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -