📄 try.asm
字号:
********BLDC for Ma.Changshan's PCB******
********PWM1~6*************
;注意:其中PWM在cpld中进行了反相
********CAP1~3**************
.include "LF2407.H"
.def _c_int0
.bss X1,1
.bss X2,1
.bss IMAX,1
.bss IMIN,1
HUANXIANG
.word #0FFFH,#07FDH,#0FD7H,#07DFH,#0D7FH,#0F7DH,#0DF7H
;ACTRA(11~0)--CMP6CTL...CMP1CTL
;00 forced low
;01 active low
;10 active high
;11 forced high
;注意:在CPLD中进行了反相,所以实际为PWM高有效
.sect "vectors"
REVECT B _c_int0
INT1 B PHANTOM
INT2 B PHANTOM
INT3 B PHANTOM
INT4 B PHANTOM
INT5 B PHANTOM
INT6 B ADCINT
.text
_c_int0:
LDP #0H
CLRC CNF
CLRC OVM
CLRC SXM
SETC INTM
;initial
;system initial
LDP #0H
SPLK #0H,IMR
SPLK #0FFFFH,IFR
MAR *,AR1
LAR AR1,#300H
LDP #0E0H
SPLK #208DH,SCSR1
SPLK #006DH,SCSR2
SPLK #006FH,WDCR ;WATCHDOG is disable
;----------------------
LDP #4H
SPLK #0H,X1
splk #0h,X2
SPLK #7673H,IMAX ;
SPLK #8123H,IMIN
;------------------------
;IO
LDP #0E1H
SPLK #0FF8H,MCRA ;PWM1~6 ;CAP1_3
;EVA
LDP #0E8H
SPLK #6145H,GPTCONA ;T1 period enable ADC
SPLK #1046H,T1CON
SPLK #3999,T1PR ;AD 10KHZ
SPLK #0555H,ACTRA ;pwm1~6 low efficiency
SPLK #0,CMPR1
SPLK #0,CMPR1
SPLK #0,CMPR3
SPLK #0A000H,COMCONA
SPLK #0FECH,DBTCONA
SPLK #0,T1CNT
SPLK #0,T2CNT
SPLK #0F4FH,T2CON ;X/128
;CAP
SPLK #30FFH,CAPCONA ; T2 count for cap time
SPLK #00FFH,CAPFIFOA
SPLK #0FFFFH,T2PR
;ADC
LDP #0E1H
SPLK #4000H,ADCTRL1
NOP
SPLK #2932H,ADCTRL1 ;启动/停止 模式
SPLK #4000H,ADCTRL2
NOP
SPLK #0504H,ADCTRL2 ;enable EVA start
SPLK #05H,MAXCONV ;IA,IB,IC
SPLK #44EEH,CHSELSEQ1
SPLK #00DDH,CHSELSEQ2
;CLRAE INTS AND ENABLE INTS
LDP #0E8H
LACC EVAIFRA
SACL EVAIFRA
LACC EVAIFRB
SACL EVAIFRB
LACC EVAIFRC
SACL EVAIFRC
SPLK #0000H,EVAIMRA
SPLK #0000H,EVAIMRB
SPLK #0007H,EVAIMRC ;enable capint
LDP #0EAH
LACC EVBIFRA
SACL EVBIFRA
LACC EVBIFRB
SACL EVBIFRB
LACC EVBIFRC
SACL EVBIFRC
SPLK #0000H,EVBIMRA
SPLK #0000H,EVBIMRB
SPLK #0000H,EVBIMRC
;ENABLE INTS
LDP #0H
LACL IMR
OR #0020H ;enable INT6
SACL IMR
SPLK #0FFFFH,IFR
CLRC INTM
;INITIAL POSTION JUDGEING
LDP #0E1H
LACC PADATDIR
RPT #2
SFR
AND #0007H
LDP #4H
ADD #HUANXIANG
LDP #0E8H
TBLR ACTRA
;------------------------------------
WAIT:
NOP
B WAIT
;------------------------------------
;------------------------------------
ADCINT:
INT_PUSH
NOP
LDP #4H
LACC IMAX,1
AND #0006H
SACL X1
LACC IMIN,16
SACH X2
LACC X2
AND #0001H
ADD X1
SACL X1
INT_POP
RET
;------------------------------------------------
PHANTOM:
CLRC INTM
NOP
RET
;--------------------------------------------------------------
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -