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

📄 vhz_ti.asm

📁 本程序来自TI公司网站原程序,其功能是通过传统的V/F控制算法来实现对感应电机的控制,控制程序可以采用.asm也可以采用.C。 程序的具体算法和介绍在软件压缩包有详细介绍!
💻 ASM
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.02       
*******************************************************
;	dspac -i../../../../rtmon/ -i../include -i../../../../lib/dmclib/clib/include -i../../../../lib/drvlib/clib/include -v2xx -iC:/t
;	dspopt NOT RUN
;	dspcg -o -v2xx -o C:\WINDOWS\TEMP\vhz_ti.if C:\WINDOWS\TEMP\vhz_ti.asm C:\WINDOWS\TEMP\vhz_ti.tmp 
	.port
	.file	"vhz_ti.c"
	.file	"../../../../lib/dmclib/clib/include\Vhzprof.h"

	.stag	.fake0,128
	.member	_freq,0,4,8,16
	.member	_fl,16,4,8,16
	.member	_fh,32,4,8,16
	.member	_slope,48,4,8,16
	.member	_vmax,64,4,8,16
	.member	_vmin,80,4,8,16
	.member	_vout,96,4,8,16
	.member	_calc,112,148,8,16
	.eos
	.sym	_VHZPROFILE,0,8,13,128,.fake0
	.globl	_Vhz_Profile_Calculate
	.file	"../../../../lib/dmclib/clib/include\svgen.h"

	.stag	.fake1,144
	.member	_gain,0,4,8,16
	.member	_freq,16,4,8,16
	.member	_freq_max,32,4,8,16
	.member	_alpha,48,4,8,16
	.member	_sector,64,4,8,16
	.member	_va,80,4,8,16
	.member	_vb,96,4,8,16
	.member	_vc,112,4,8,16
	.member	_calc,128,148,8,16
	.eos
	.sym	_SVGENMF,0,8,13,144,.fake1
	.sym	_SVGENMF_handle,0,24,13,16,.fake1

	.stag	.fake2,96
	.member	_d,0,4,8,16
	.member	_q,16,4,8,16
	.member	_va,32,4,8,16
	.member	_vb,48,4,8,16
	.member	_vc,64,4,8,16
	.member	_calc,80,148,8,16
	.eos
	.sym	_SVGENDQ,0,8,13,96,.fake2
	.sym	_SVGENDQ_handle,0,24,13,16,.fake2
	.globl	_svgenmf_calc
	.globl	_svgendq_calc
	.file	"../../../../lib/dmclib/clib/include\pid.h"

	.stag	.fake3,240
	.member	_un_H,0,4,8,16
	.member	_un_L,16,4,8,16
	.member	_en,32,4,8,16
	.member	_en_1,48,4,8,16
	.member	_en_2,64,4,8,16
	.member	_K0,80,4,8,16
	.member	_K1,96,4,8,16
	.member	_K2,112,4,8,16
	.member	_Kx,128,4,8,16
	.member	_Kf,144,4,8,16
	.member	_rn,160,4,8,16
	.member	_psat,176,4,8,16
	.member	_nsat,192,4,8,16
	.member	_output,208,4,8,16
	.member	_calc,224,148,8,16
	.eos
	.sym	_PID,0,8,13,240,.fake3
	.globl	_pid_ff
	.file	"../include\vhz_ti.h"

	.stag	.fake4,576
	.member	_speed_setpt,0,4,8,16
	.member	_speed_value,16,4,8,16
	.member	_direction,32,4,8,16
	.member	_closed_loop_flag,48,4,8,16
	.member	_vhzprof,64,8,8,128,.fake0
	.member	_svgen,192,8,8,144,.fake1
	.member	_pid,336,8,8,240,.fake3
	.eos
	.sym	_VHZ_TI,0,8,13,576,.fake4
	.sym	_VHZ_TI_handle,0,24,13,16,.fake4
	.globl	_VHZ_TI_Init
	.globl	_VHZ_TI_Run
	.file	"vhz_ti.c"
	.text

	.sym	_VHZ_TI_Init,_VHZ_TI_Init,32,2,0
	.globl	_VHZ_TI_Init

	.func	25
;>>>> 	void VHZ_TI_Init(VHZ_TI_handle v)
******************************************************
* FUNCTION DEF : _VHZ_TI_Init
******************************************************
_VHZ_TI_Init:

LF1	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR2

	.sym	_v,-3+LF1,24,9,16,.fake4
	.line	2
	.line	6
;>>>> 	    v->svgen.freq      = 0x3fff; 
	LARK	AR2,-3+LF1
	MAR	*0+
	LAR	AR3,* ,AR3
	ADRK	13
	SPLK	#16383,*+
	.line	7
;>>>> 	    v->svgen.freq_max  = 2400;
	SPLK	#2400,* 
	.line	8
;>>>> 	    v->speed_setpt     = 0x4000;
;>>>> 	#define MY_VHZ_PROFILE { 0x0000, \
;>>>> 	                          0x0000, \
;>>>> 	                          0x7fff, \
;>>>> 	                          0x0000, \
;>>>> 	                          0x0000, \
;>>>> 	                          0x0000, \
;>>>> 	                          0x0000, \
;>>>> 	                          (int (*)(int))Vhz_Profile_Calculate }
	SBRK	14
	SPLK	#16384,* 
	.line	31
;>>>> 	    v->vhzprof.vmin = 0x1000;        
	ADRK	9
	SPLK	#4096,*-
	.line	32
;>>>> 	    v->vhzprof.vmax = 0x7000;        
	SPLK	#28672,* 
	.line	33
;>>>> 	    v->vhzprof.fl   = 0x1000;        
	SBRK	3
	SPLK	#4096,*+
	.line	34
;>>>> 	    v->vhzprof.fh   = 0x7000;        
	SPLK	#28672,*+
	.line	35
;>>>> 	    v->vhzprof.slope= 0x1000;                                                   
	SPLK	#4096,* ,AR1
EPI0_1:
	.line	36
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	60,000000000H,1

	.sym	_VHZ_TI_Run,_VHZ_TI_Run,32,2,0
	.globl	_VHZ_TI_Run

	.func	129
;>>>> 	void VHZ_TI_Run(VHZ_TI_handle v)
******************************************************
* FUNCTION DEF : _VHZ_TI_Run
******************************************************
_VHZ_TI_Run:

LF2	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR2

	.sym	_v,-3+LF2,24,9,16,.fake4
	.line	2
	.line	6
;>>>> 	    v->vhzprof.freq  = v->svgen.freq;    /* Input freq to VHZPROFILE vhz     */
	LARK	AR2,-3+LF2
	MAR	*0+
	LAR	AR3,* 
	LAR	AR4,* ,AR3
	ADRK	13
	LAC	* ,AR4
	ADRK	4
	SACL	* ,AR2
	.line	11
;>>>> 	    v->vhzprof.calc((void *)&v->vhzprof); /* Call VHZPROFILE compute func    */
	LAC	* ,AR1
	ADDK	4
	SACL	*+,AR3
	SBRK	2
	LAC	* ,AR1
	CALA
	MAR	*-,AR2
	.line	12
;>>>> 	    v->svgen.gain=v->vhzprof.vout;       /* Use the computed gain     */
	LARK	AR2,-3+LF2
	MAR	*0+
	LAR	AR3,* 
	LAR	AR4,* ,AR3
	ADRK	10
	LAC	* ,AR4
	ADRK	12
	SACL	* ,AR2
	.line	16
;>>>> 	    v->svgen.calc((void *)&v->svgen);   /* Call SVGEN compute function       */
	LAC	* ,AR1
	ADDK	12
	SACL	*+,AR3
	ADRK	10
	LAC	* ,AR1
	CALA
	MAR	*-
EPI0_2:
	.line	19
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	147,000000000H,1
	.end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -