⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 利用TMS320LF2407实现了实现电机变频控制的程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
				
				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 + -