📄 main.asm
字号:
lacc #0004h
ldp #tmp
out tmp,wsgr
zac
ldp #DP_EV
sacl gptcon
sacl t1cnt
sacl t1cmp
sacl t1per
sacl t1con
sacl t2cnt
sacl t2cmp
sacl t2per
sacl t2con
sacl t3cnt
sacl t3cmp
sacl t3per
sacl t3con
sacl comcon
sacl actr
sacl sactr
sacl dbtcon
sacl cmpr1
sacl cmpr2
sacl cmpr3
sacl scmpr1
sacl scmpr2
sacl scmpr3
sacl capcon
sacl capfifo
sacl fifo1
sacl fifo2
sacl fifo3
sacl fifo4
*****************initialize pwm**********
splk #0999h,actr
splk #100,cmpr1
splk #200,cmpr2
splk #300,cmpr3
splk #0000h,dbtcon
splk #0207h,comcon
splk #8207h,comcon
splk #pwmprd,t1per
splk #0,t1cnt
splk #0a800h,t1con
***************enable timer 1**************
lacc t1con
or #40h
sacl t1con
***********************************************
****pwm channel enable
****74hc541 chip enable connected to iopc3 of digital input/output
*****************************************************
ldp #DP_PF2
splk #0fh,opcra
splk #79h,opcrb
splk #0ff02h,PBDATDIR
splk #0ff08h,PCDATDIR
*************END PWM ENABLE
*******************************************************
****incremental encoder initialization*********
****capture for incremental encoder correction with xint2**
*******************************************************
LDP #DP_EV
splk #0000h,t3cnt
splk #00ffh,t3per
splk #9870h,t3con
splk #0e2f0h,capcon
********end encoder/capture initialization***************
*****************************************************
***A/D initialization******
ldp #DP_PF1
splk #0003h,adc_cntl2
lacc adc_fifo1
lacc adc_fifo1
lacc adc_fifo2
lacc adc_fifo2
***end a/d initialization*************
**********************variables initialization**************
ldp #i1
lacc ismax
sacl iqrmax
neg
sacl iqrmin
zac
sacl iqr
sacl idr
sacl n_ref
sacl idr
sacl indice1
sacl xid
sacl xiq
sacl xispeed
sacl upi
sacl elpi
sacl va
sacl vb
sacl vc
sacl faultreset
splk #24,da1
splk #25,da2
splk #42,da3
splk #0,da4
splk #vkcurrent,kcurrent
splk #vsqrt3inv,sqrt3inv
splk #vsqrt32,sqrt32
splk #vki,ki
splk #vkpi,kpi
splk #vkcor,kcor
splk #vkispeed,kispeed
splk #vkpispeed,kpispeed
splk #vkcorspeed,kcorspeed
splk #vkiweak,kiweak
splk #vkpiweak,kpiweak
splk #vkcorweak,kcorweak
splk #vismax,ixmax
splk #vkencoder,kencoder
***********************************************************
***************table initialization**********************
********************************************************
mar *,ar5
lar ar5,#sintab
rpt #255
blpd #sintab_flash,*+
setc ovm
spm 0
sect sxm
**************end initializations**************************
splk #122h,vdcinvtc
splk #000h,initphase
**************initialize ar4 as the stack for context save**
**************space reserved daram b2 60h-80h(page0)********
lar ar4,#79h
lar ar5,#60h
**************enable interrupt*********************************
ldp #DP_EV
splk #07ff,ifra
splk #00ffh,ifrb
splk #00fh,ifrc
*************enable t1 underflow int
splk #0201h,imra
splk #0000h,imrb
splk #0000h,imrc
*************enable xint2 interruption for encoder synchronization********
ldp #DP_PF1
splk #0006,xint2_cntl
splk #0007,xint2_cntl
ldp #0h
lacc #0ffh
sacl IFR
lacc #02h
sacl IMR
ldp #i1
clrc intm
*************end enable interrupt*********************
*******************************************************
*************serial communicaton initialization********
*******************************************************
ldp #DP_PF1
splk #17h,SCISCR
splk #0013h,SCICTL1
splk #0000h,SCICTL2
splk #0000h,SCIHBAUD
splk #0082h,SCILBAUD
splk #0022h,SCIPC2
splk #0033h,SCICTL1
**********************************************************
****************VIRTUAL MEAU*****************************
**********************************************************
meau:
ldp #DP_PF1
bit SCIRXST,BIT6 ;is there any character available
bcnd meau,ntc
lacc SCIRXBUF
and #0ffh
ldp #option
sacl option ;store it in option,now in option
;we have the virtual meau
sub #31h
bcnd notone,neq
*****************************************************
**************option1):speed reference***************
*****************************************************
navail11:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail11,ntc
lacc SCIRXBUF
and #0ffh ;take the 8LSB
ldp #serialtmp
sacl serialtmp
navail12:
ldp #DP_PF1
bit SCIRXST,BIT6 ;8 MSB available
bcnd navil12,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl n_ref
b meau
******************************************************************
notone:
lacc option
sub #032h
bcnd nottwo,neq
*****************************************************
**************option2):dac update********************
*****************************************************
navail21:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail21,ntc
lacc SCIRXBUF
and #0ffh
ldp #da1
sacl da1
navail22:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail22,ntc
lacc SCIRXBUF
and #0ffh
ldp #da1
sacl da2
navail23:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail23,ntc
lacc SCIRXBUF
and #0ffh
ldp #da1
sacl da3
navail24:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail24,ntc
lacc SCIRXBUF
and #0ffh
ldp #da1
sacl da4
b meau
********************************************************
nottwo:
lacc option
sub #033h
bcnd notthree,neq
**********************************************************
***************option 3):initphase************************
***********************************************************
navail31:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail31,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail32:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail32,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl initphase
b meau
**************************************************************
notthree:
lacc option
sub #34h
bcnd notfour,neq
***********************************************************
***************option 4):vdcinvtc**************************
************************************************************
navail41:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail41,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail42:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail42,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl vdcinvtc
b meau
***********************************************************
notfour:
lacc option
sub #35h
bcnd notfive,neq
*************************************************************
***************option 5): kpi,ki,kcor************************
*************************************************************
navail51:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail51,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail52:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail52,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kpi
navail53:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail53,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail54:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail54,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl ki
navail55:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail55,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail56:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail56,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kcor
b meau
*******************************************************
notfive:
lacc option
sub #036h
bcnd notsix,neq
******************************************************
****************option 6): kpispeed,kispeed,kcorspeed***
**********************************************************
navail61:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail61,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail62:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail62,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kpispeed
navail63:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail63,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail64:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail64,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kispeed
navail65:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail65,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail66:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail66,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kcorspeed
b meau
************************************************
notsix:
lacc option
sub #037h
bcnd notseven,neq
*******************************************************
*************option 7):kpiweak,kiweak,kcorweak*********
*******************************************************
navail71:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail71,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail72:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail72,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kpiweak
navail73:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail73,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail74:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail74,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kiweak
navail75:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail75,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail76:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail76,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl kcorweak
b meau
*****************************************************
notseven:
lacc option
sub #038h
bcnd noteight,neq
********************************************************
***********option 8):faultreset***********************
*******************************************************
navail81:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail81,ntc
lacc SCIRXBUF
and #0ffh
ldp #serialtmp
sacl serialtmp
navail82:
ldp #DP_PF1
bit SCIRXST,BIT6
bcnd navail82,ntc
lacc SCIRXBUF,8
ldp #serialtmp
add serialtmp
sacl faultreset
b meau
*************************************************************
noteight:
b meau
***********************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -