?? main.asm
字號(hào):
;************************************************************
;zhi zuo zhe :hua bei dian li da xue
; dian neng zhi liang yan jiu suo
;shi jian :2002-4-25
;************************************************************
.include "x24x_app.h"
;************************************************************
;yin yong shuo ming
;************************************************************
.ref SYS_INIT
.ref DATA_LOG, DATA_LOG_INIT ;function call
.ref input1,input2,input3,input4
.ref AMP_INIT,AMP_MAIN
.ref AMP2_INIT,AMP2_MAIN
.ref in_theta,ina_amp ,inc_amp,in_daoshu
.ref out_ta,out_tb,out_tc
.ref amp_a,amp_b,amp_c
.ref IIR_BWT4, IIR_BWT4_INIT ;function call
.ref Xin_IIR ;Inputs
.ref Yout_IIR ;Outputs
.ref IIR_BWT41, IIR_BWT41_INIT ;function call
.ref Xin_IIR1 ;Inputs
.ref Yout_IIR1 ;Outputs
.ref CLARKE, CLARKE_INIT ;function call
.ref clark_a, clark_b ;Inputs
.ref clark_d, clark_q ;Outputs
.ref I_CLARKE, I_CLARKE_INIT ;function call
.ref Iclark_d, Iclark_q ;Inputs
.ref Iclark_a, Iclark_b, Iclark_c ;Outputs
.ref I_PARK, I_PARK_INIT ;function call
.ref ipark_D, ipark_Q, sin_theta1,cos_theta1 ;Inputs
.ref ipark_d, ipark_q ;Outputs
.ref theta_ip
.ref SINTAB_360
.ref PARK, PARK_INIT ;function call
.ref park_d, park_q,sin_theta,cos_theta,theta_p ;Inputs
.ref park_D, park_Q ;Outputs
.ref SINTAB_360
.ref Udc_init,Udc_main
.ref in_Udc
.ref out_Udc ,Udc_bef
.ref theta_c
.ref theta_a
.ref amp_dizhi
.ref AAA
.ref BBB
.ref WAY
.ref WAY1
.ref in_ta,in_tb,in_tc
.ref out_a,out_b,out_c
.ref out_1,out_2,out_3
.ref ZHONG_MAIN
.ref out_a_
.ref out_b_
.ref out_c_
.def theta
.def Uab
.def Ubc
.def ila
.def ilb
.def GPR0
.def adc_sel
.def beta
;************************************************************
;bian liang di yi
;************************************************************
.bss beta,1
.bss GPR0,1
.bss adc_sel,1
.bss Uab,1
.bss Ubc,1
.bss ila,1
.bss ilb,1
.bss Udc,1
.bss theta,1
.bss Ubili,1
.bss Ubc_fu,1
.bss U_d,1
.bss U_q,1
.bss ling,1
.bss ifcase,1
.bss fuhao1,1
.bss cishu1,1
.bss counter1,1
.bss counter2,1
;************************************************************
;zhong duan xiang liang biao
;************************************************************
.sect ".vectors"
RESET B start ; 00
INT1 B PHANTOM ; 02
INT2 B T1UF_ISR ; 04
INT3 B PHANTOM ; EV interrupt Group B
INT4 B PHANTOM ; PM 8 Int level 4
INT5 B PHANTOM ; PM A Int level 5
INT6 B PHANTOM ; PM C Int level 6
RESERVED B PHANTOM ; PM E (Analysis Int)
SW_INT8 B PHANTOM ; PM 10 User S/W int
SW_INT9 B PHANTOM ; PM 12 User S/W int
SW_INT10 B PHANTOM ; PM 14 User S/W int
SW_INT11 B PHANTOM ; PM 16 User S/W int
SW_INT12 B PHANTOM ; PM 18 User S/W int
SW_INT13 B PHANTOM ; PM 1A User S/W int
SW_INT14 B PHANTOM ; PM 1C User S/W int
SW_INT15 B PHANTOM ; PM 1E User S/W int
SW_INT16 B PHANTOM ; PM 20 User S/W int
TRAP B PHANTOM ; PM 22 Trap vector
NMI B PHANTOM ; PM 24 Non maskable Int
EMU_TRAP B PHANTOM ; PM 26 Emulator Trap
SW_INT20 B PHANTOM ; PM 28 User S/W int
SW_INT21 B PHANTOM ; PM 2A User S/W int
SW_INT22 B PHANTOM ; PM 2C User S/W int
SW_INT23 B PHANTOM ; PM 2E User S/W int
;************************************************************
;zhu cheng xu
;************************************************************
.text
start:
CALL SYS_INIT
CALL DATA_LOG_INIT
CALL AMP_INIT
CALL AMP2_INIT
CALL IIR_BWT4_INIT
CALL IIR_BWT41_INIT
CALL CLARKE_INIT
CALL I_CLARKE_INIT
CALL I_PARK_INIT
CALL PARK_INIT
CALL Udc_init
LDP #Ubili
SPLK #24060,Ubili;Q12 BIAO SHI 5.873972
LDP #ling
SPLK #0,ling
SPLK #0,ifcase
SPLK #1,fuhao1
SPLK #0,cishu1
LDP #beta
SPLK #0,beta
MAIN: NOP
KICK_DOG
B MAIN
;************************************************************
;zhong duan fu wu cheng xu
;************************************************************
.sect ".subr2"
T1UF_ISR:
MAR *,AR1 ;AR1 is stack pointer
MAR *+ ;skip one position
SST #1, *+ ;save ST1
SST #0, *+ ;save ST0
SACH *+ ;save acc high
SACL * ;save acc low
POINT_EV
SPLK #0FFFFh,IFRA ; Clear all Group A interrupt flags (T1 ISR)
LDP #0E1h
LACC PBDATDIR
AND #0FFFBh
SACL PBDATDIR
* bits 15 0: 0-IOPB7 is input, 1-IOPB7 is output
* bits 14 0: 0-IOPB6 is input, 1-IOPB6 is output
* bits 13 0: 0-IOPB5 is input, 1-IOPB5 is output T3PWM/IOPB5 INT2
* bits 12 1: 0-IOPB4 is input, 1-IOPB4 is output T2PWM CONVST2
* bits 11 1: 0-IOPB3 is input, 1-IOPB3 is output T1PWM CONVST1
* bits 10 0: 0-IOPB2 is input, 1-IOPB2 is output PWM9/IOPB2 INT1
* bits 9 0: 0-IOPB1 is input, 1-IOPB1 is output PWM8
* bits 8 0: 0-IOPB0 is input, 1-IOPB0 is output PWM7
* bits 7 0: 0-IOPB7 low 1-IOPB7 high
* bits 6 0: 0-IOPB6 low 1-IOPB6 high
* bits 5 0: 0-IOPB5 low 1-IOPB5 high
* bits 4 0: 0-IOPB4 low 1-IOPB4 high
* bits 3 0: 0-IOPB3 low 1-IOPB3 high
* bits 2 0: 0-IOPB2 low 1-IOPB2 high
* bits 1 0: 0-IOPB1 low 1-IOPB1 high
* bits 0 0: 0-IOPB0 low 1-IOPB0 high
; ldp #theta
; in theta,2h
; LACC theta
; add #16
; ADD #85
; AND #03FFH
; SACL theta
;ruan jian suo xiang
LDP #0E8H
LACC CAPFIFO
AND #3000H ;LI YONG DE SHI CAPTURE4
BCND OZ,EQ
AND #2000H
BCND OZ1,EQ
; LACC FIFO4
LDP #ling
; SACL ling
BLDD #FIFO3,ling
NOP
NOP
OZ1 LDP #ling
BLDD #FIFO3,ling
SPLK #1500,ifcase
LDP #cishu1
SPLK #0,cishu1
SPLK #1,fuhao1
BLDD #ling,counter2
OZ NOP
NOP
LDP #counter1
BLDD #T2CNT,counter1
LACC counter1
SUB counter2
BCND DYL1,GEQ
LDP #cishu1
LACC cishu1
ADD #1500
SACL cishu1
DYL1 NOP
BLDD #counter1,counter2
TIAO LDP #cishu1
LACC cishu1
ADD counter1
SUB ling
SUB #3125
BCND DYL3,GT
ADD #3125
DYL3 NOP
NOP
SACL theta
LDP #ifcase
SPLK #0,ifcase
SETC SXM
LDP #Uab
;first off-chip adc
;Read 1st converted value
IN Uab,0h
LACC Uab,14
SACH Uab
;Read 2nd converted value
IN Ubc,0h
LACC Ubc,14
SACH Ubc
;Read 3rd converted value
IN ila,0h
LACC ila,14
SACH ila
;Read 4th converted value
IN ilb,0h
LACC ilb,14
SACH ilb
LDP #0E1h
LACC PBDATDIR
OR #04h
SACL PBDATDIR
SETC SXM
; LDP #0E1h
;WAIT11: LACC PBDATDIR
; BIT PBDATDIR,BIT7
; BCND WAIT11,TC
SPM 2
LDP #Ubili
LT Ubili;Q12 BIAO SHI 5.873972
MPY Uab
PAC
SACH Uab ;Q6 ji shu fan ying shi ji xian dian ya you xiao zhi x/(64*1.414)
MPY Ubc
PAC
SACH Ubc
; NEG
; SACH Ubc_fu
; LDP #clark_a
; BLDD #Uab,clark_a
; BLDD #Ubc_fu,clark_b
; CALL CLARKE
; LDP #park_d
; BLDD #clark_d,park_d
; BLDD #clark_q,park_q
; BLDD #theta,theta_p
; CALL PARK
****************************************
LDP #Xin_IIR
;BLDD #park_D,Xin_IIR
BLDD #Uab,Xin_IIR
CALL IIR_BWT4
LDP #in_theta
BLDD #Yout_IIR,ina_amp
; BLDD #Uab,ina_amp
;LDP #U_d
;BLDD #Yout_IIR,U_d
LDP #Xin_IIR
;BLDD #park_Q,Xin_IIR
BLDD #Ubc,Xin_IIR
CALL IIR_BWT4
LDP #in_theta
BLDD #Yout_IIR,inc_amp
; BLDD #Ubc,inc_amp
;LDP #U_d
;BLDD #Yout_IIR,U_q
;LDP #ipark_D
;BLDD #U_d,ipark_D
;BLDD #U_q,ipark_Q
;BLDD #sin_theta,sin_theta1
;BLDD #cos_theta,cos_theta1
;CALL I_PARK
;LDP #Iclark_d
;BLDD #ipark_d,Iclark_d
;BLDD #ipark_q,Iclark_q
;CALL I_CLARKE
;yi shang wan chen Uab Ubc de lv bo
SETC SXM
LDP #Udc
SETC SXM
IN Udc,1h
LACC Udc,14
SACH Udc
LDP #Xin_IIR
BLDD #ila,Xin_IIR
call IIR_BWT4
LDP #in_Udc
BLDD #Yout_IIR,in_Udc
; LDP #in_Udc
; BLDD #ila,in_Udc
; SPLK #9257,in_Udc ;1.13 zhe yi ju de mu di zai yu tiao shi qiu dao cheng xu
CALL Udc_main
;qiu chu Udc de ping jun zhi bing qiu chu (Udc/514)
LDP #in_theta
BLDD #theta,in_theta
;BLDD #Iclark_a,ina_amp
;BLDD #Uab,ina_amp
;BLDD #Iclark_b,inc_amp
;BLDD #Ubc,inc_amp
BLDD #Udc_bef,in_daoshu ;in_daoshu shi Q13
CALL AMP_MAIN
; LDP #input1
; BLDD #out_ta,input1
; BLDD #out_tb,input2
; BLDD #Udc_bef,input3
; CALL DATA_LOG
LDP #in_ta
BLDD #out_ta,in_ta
BLDD #out_tb,in_tb
BLDD #out_tc,in_tc
CALL ZHONG_MAIN
**********************************************
LDP #out_a
LACC out_a
BCND SUODING,LT
SUB #1500
BCND SUODING,GT
LDP #out_b
LACC out_b
BCND SUODING,LT
SUB #1500
BCND SUODING,GT
LDP #out_c
LACC out_c
BCND SUODING,LT
SUB #1500
BCND SUODING,GT
LDP #in_Udc
LACC in_Udc
SUB #450
BCND SUODING,LT
;pan duan shi fou ben shen
LACC in_Udc
SUB #850
BCND BENSHEN,GT
LDP #0E8H
BLDD #out_a,CMPR1
BLDD #out_b,CMPR2
BLDD #out_c,CMPR3
B M1
BENSHEN: LDP #beta
LACC beta
SUB #130
BCND BENSHEN1,GEQ
LDP #beta
LACC beta
ADD #1
SACL beta
BENSHEN1:; SACL beta
LDP #theta
LACC theta
SUB beta
SACL theta
LDP #in_theta
BLDD #theta,in_theta
CALL AMP_MAIN
LDP #in_ta
BLDD #out_ta,in_ta
BLDD #out_tb,in_tb
BLDD #out_tc,in_tc
CALL ZHONG_MAIN
LDP #0E8H
BLDD #out_a,CMPR1
BLDD #out_b,CMPR2
BLDD #out_c,CMPR3
; CALL AMP2_MAIN
; LDP #0E8H
; BLDD #out_a_,CMPR1
; BLDD #out_b_,CMPR2
; BLDD #out_c_,CMPR3
B M1
SUODING:
LDP #0E8H
SPLK #750,CMPR1
SPLK #750,CMPR2
SPLK #750,CMPR3
M1:
LDP #input1
BLDD #in_Udc,input1
BLDD #Udc_bef,input2
BLDD #out_c,input3
CALL DATA_LOG
END_ISR:
POINT_PG0
MAR *, AR1 ;make stack pointer active
LACL *- ;Restore Acc low
ADDH *- ;Restore Acc high
LST #0, *- ;load ST0
LST #1, *- ;load ST1
EINT
RET
PHANTOM B PHANTOM
PHANTOM1 B PHANTOM1
PHANTOM2 B PHANTOM2
PHANTOM3 B PHANTOM3
PHANTOM4 B PHANTOM4
PHANTOM5 B PHANTOM5
PHANTOM6 B PHANTOM6
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -