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

📄 fchev_can.asm

📁 关于电动汽车控制采样处理的源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx -iD:\FCHEV_pid\inlcude fchev_can.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.if 
;	dspopt NOT RUN
;	C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.tmp 

	.port
	.bss	_pid,12,1
_fir	.usect	"firfilt",28,1
	.bss	_mbx2_a,1
	.bss	_mbx2_b,1
	.bss	_mbx2_c,1
	.bss	_mbx2_d,1
	.bss	_LED6_counter,1
	.bss	_LED7_counter,1
	.bss	_LED8_counter,1
	.bss	_LED_STATE,1
	.bss	_temp_RCR,1
	.bss	_temp_TCR,1
	.bss	_Ib,1
	.bss	_If,1
	.bss	_Ubus,1
	.bss	_temp,1
	.bss	_end_ad,1
	.bss	_channel_0,1
	.bss	_channel_1,1
	.bss	_channel_2,1
	.bss	_channel_3,1
	.bss	_tx_cnt,1
	.bss	_P_FC_ref,1
	.bss	_CAN_TFLAG,1
	.file	"fchev_can.c"
	.file	"D:\FCHEV_pid\inlcude\f2407regs.h"
	.globl	_portFF0F
	.globl	_portFFFF
	.file	"D:\FCHEV_pid\inlcude\firfilt.h"

	.stag	.fake0,112
	.member	_coeff_ptr,0,20,8,16
	.member	_dbuffer_ptr,16,20,8,16
	.member	_order,32,4,8,16
	.member	_input,48,4,8,16
	.member	_output,64,4,8,16
	.member	_init,80,144,8,16
	.member	_calc,96,144,8,16
	.eos
	.sym	_FIRFILT_GEN,0,8,13,112,.fake0

	.stag	.fake1,448
	.member	_coeff_ptr,0,20,8,16
	.member	_dbuffer_ptr,16,20,8,16
	.member	_order,32,4,8,16
	.member	_input,48,4,8,16
	.member	_output,64,4,8,16
	.member	_dbuffer,80,52,8,160,,10
	.member	_coeff,240,52,8,176,,11
	.member	_init,416,144,8,16
	.member	_calc,432,144,8,16
	.eos
	.sym	_FIRFILT_ORD10,0,8,13,448,.fake1

	.stag	.fake2,768
	.member	_coeff_ptr,0,20,8,16
	.member	_dbuffer_ptr,16,20,8,16
	.member	_order,32,4,8,16
	.member	_input,48,4,8,16
	.member	_output,64,4,8,16
	.member	_dbuffer,80,52,8,320,,20
	.member	_coeff,400,52,8,336,,21
	.member	_init,736,144,8,16
	.member	_calc,752,144,8,16
	.eos
	.sym	_FIRFILT_ORD20,0,8,13,768,.fake2

	.stag	.fake3,128
	.member	_coeff_ptr,0,20,8,16
	.member	_brindex,16,4,8,16
	.member	_order,32,4,8,16
	.member	_dbuffer_ptr,48,20,8,16
	.member	_input,64,4,8,16
	.member	_output,80,4,8,16
	.member	_init,96,144,8,16
	.member	_calc,112,144,8,16
	.eos
	.sym	_FIRFILT_CGEN,0,8,13,128,.fake3
	.sym	_FIRFILT_GEN_handle,0,24,13,16,.fake0
	.sym	_FIRFILT_ORD10_handle,0,24,13,16,.fake1
	.sym	_FIRFILT_ORD20_handle,0,24,13,16,.fake2
	.sym	_FIRFILT_CGEN_handle,0,24,13,16,.fake3
	.sym	_FIRFILT_CORD10_handle,0,24,13,16,.fake3
	.sym	_FIRFILT_COED20_handle,0,24,13,16,.fake3
	.globl	_FIRFILT_GEN_calc
	.globl	_FIRFILT_ORD10_calc
	.globl	_FIRFILT_ORD20_calc
	.globl	_FIRFILT_CGEN_calc
	.globl	_FIRFILT_CORD10_calc
	.globl	_FIRFILT_CORD20_calc
	.globl	_FIRFILT_LIN_init
	.globl	_FIRFILT_CIR_init
	.file	"D:\FCHEV_pid\inlcude\pid_reg1.h"

	.stag	.fake4,192
	.member	_pid_ref_reg1,0,4,8,16
	.member	_pid_fb_reg1,16,4,8,16
	.member	_Kp_reg1,32,4,8,16
	.member	_Ki_high_reg1,48,4,8,16
	.member	_Ki_low_reg1,64,4,8,16
	.member	_Kd_reg1,80,4,8,16
	.member	_pid_out_max,96,4,8,16
	.member	_pid_out_min,112,4,8,16
	.member	_pid_e1_reg1,128,4,8,16
	.member	_pid_e2_reg1,144,4,8,16
	.member	_pid_out_reg1,160,4,8,16
	.member	_calc,176,148,8,16
	.eos
	.sym	_PIDREG1,0,8,13,192,.fake4
	.globl	_pid_reg1_calc
	.file	"fchev_can.c"

	.sect	".cinit"
	.word	IS1,_pid
	.word	0
	.word	0
	.word	8704
	.word	4912
	.word	-8531
	.word	0
	.word	32767
	.word	0
	.word	0
	.word	0
	.word	0
	.word	_pid_reg1_calc+0
IS1	.set	12

	.sym	_pid,_pid,8,2,192,.fake4
	.globl	_pid
	.word	IS2,_fir
	.word	0
	.word	0
	.word	10
	.word	0
	.word	0
	.word	0
	.space	144
	.word	-171
	.word	-264
	.word	437
	.word	3464
	.word	7882
	.word	10067
	.word	7882
	.word	3464
	.word	437
	.word	-264
	.word	-171
	.word	_FIRFILT_LIN_init+0
	.word	_FIRFILT_ORD10_calc+0
IS2	.set	28

	.sym	_fir,_fir,8,2,448,.fake1
	.globl	_fir
	.globl	_port0000
	.globl	_port0001
	.globl	_port0002
	.globl	_port0003
	.globl	_port0004
	.globl	_port0008
	.globl	_port0009
	.word	1,_mbx2_a
	.word	-2

	.sym	_mbx2_a,_mbx2_a,4,2,16
	.globl	_mbx2_a
	.word	1,_mbx2_b
	.word	-1

	.sym	_mbx2_b,_mbx2_b,4,2,16
	.globl	_mbx2_b
	.word	1,_mbx2_c
	.word	-1

	.sym	_mbx2_c,_mbx2_c,4,2,16
	.globl	_mbx2_c
	.word	1,_mbx2_d
	.word	-1

	.sym	_mbx2_d,_mbx2_d,4,2,16
	.globl	_mbx2_d
	.globl	_CAN_TFLAG
	.word	1,_LED6_counter
	.word	0

	.sym	_LED6_counter,_LED6_counter,4,2,16
	.globl	_LED6_counter
	.word	1,_LED7_counter
	.word	0

	.sym	_LED7_counter,_LED7_counter,4,2,16
	.globl	_LED7_counter
	.word	1,_LED8_counter
	.word	0

	.sym	_LED8_counter,_LED8_counter,4,2,16
	.globl	_LED8_counter
	.word	1,_LED_STATE
	.word	15

	.sym	_LED_STATE,_LED_STATE,4,2,16
	.globl	_LED_STATE
	.word	1,_temp_RCR
	.word	-1

	.sym	_temp_RCR,_temp_RCR,4,2,16
	.globl	_temp_RCR
	.word	1,_temp_TCR
	.word	-1

	.sym	_temp_TCR,_temp_TCR,4,2,16
	.globl	_temp_TCR
	.word	1,_Ib
	.word	-1

	.sym	_Ib,_Ib,4,2,16
	.globl	_Ib
	.word	1,_If
	.word	-1

	.sym	_If,_If,4,2,16
	.globl	_If
	.word	1,_Ubus
	.word	-1

	.sym	_Ubus,_Ubus,4,2,16
	.globl	_Ubus
	.word	1,_temp
	.word	-1

	.sym	_temp,_temp,4,2,16
	.globl	_temp
	.word	1,_end_ad
	.word	-1

	.sym	_end_ad,_end_ad,4,2,16
	.globl	_end_ad
	.word	1,_channel_0
	.word	-1

	.sym	_channel_0,_channel_0,4,2,16
	.globl	_channel_0
	.word	1,_channel_1
	.word	-1

	.sym	_channel_1,_channel_1,4,2,16
	.globl	_channel_1
	.word	1,_channel_2
	.word	-1

	.sym	_channel_2,_channel_2,4,2,16
	.globl	_channel_2
	.word	1,_channel_3
	.word	-1

	.sym	_channel_3,_channel_3,4,2,16
	.globl	_channel_3
	.word	1,_tx_cnt
	.word	0

	.sym	_tx_cnt,_tx_cnt,4,2,16
	.globl	_tx_cnt
	.globl	_sci_init
	.globl	_delay
	.word	1,_P_FC_ref
	.word	0

	.sym	_P_FC_ref,_P_FC_ref,4,2,16
	.globl	_P_FC_ref
	.text

	.sym	_main,_main,36,2,0
	.globl	_main

	.func	76
;>>>> 	         main()
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	5
;>>>> 		     asm(" SETC INTM");
 SETC INTM
	.line	6
;>>>> 	    	     asm(" CLRC SXM");
 CLRC SXM
	.line	7
;>>>> 	       	asm(" CLRC OVM");
 CLRC OVM
	.line	8
;>>>> 			asm(" CLRC CNF");
 CLRC CNF
	.line	9
;>>>> 			asm(" nop");   
 nop
	.line	10
;>>>> 	          asm(" nop");
 nop
	.line	11
;>>>> 			asm(" nop");     
 nop
	.line	13
;>>>> 	    *SCSR1 = 0x00FD;
	LARK	AR3,28696
	LACK	253
	MAR	* ,AR3
	SACL	*+
	.line	28
;>>>> 	    *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
	LACK	11
	OR	* 
	ANDK	15
	SACL	* 
	.line	39
;>>>> 	    *WDCR  = 0x00E8;
	LACK	232
	ADRK	16
	SACL	* ,AR0
	.line	48
;>>>> 	    WSGR = 0x0000;
	LACK	0
	SACL	* 
	OUT	* ,0ffffh
	.line	49
;>>>> 	    asm(" NOP");
 NOP
	.line	50
;>>>> 	    WSGR = 0x0040;
	LACK	64
	SACL	* 
	OUT	* ,0ffffh,AR3
	.line	59
;>>>> 	    *MCRA = 0x0000;                     /* group A pins */
	LACK	0
	ADRK	103
	SACL	* 
	.line	77
;>>>> 	    *MCRB = 0xFEC0;                     /* group B pins */
	ADRK	2
	SPLK	#65216,* 
	.line	95
;>>>> 	    *MCRC = 0x0000;                     /* group C pins */
	ADRK	2
	SACL	* ,AR4
	.line	118
;>>>> 	    *T1CON = 0x0000;                   /* disable timer 1 */
	LARK	AR4,29700
	SACL	* 
	.line	119
;>>>> 	    *T2CON = 0x0000;                   /* disable timer 2 */
	ADRK	4
	SACL	* 
	.line	120
;>>>> 	    *GPTCONA = 0x0000;                  /* configure GPTCONA */
	SBRK	8
	SACL	* 
	.line	135
;>>>> 	    *T2CNT = 0x0000;                    /* clear timer counter */
	ADRK	5
	SACL	* 
	.line	136
;>>>> 	    *T2PR = timer2_per;                 /* set timer period */
	ADRK	2
	SPLK	#3215,*+
	.line	137
;>>>> 	    *T2CON = 0x1700;                    /* configure T2CON register */
	SPLK	#5888,* ,AR5
	.line	151
;>>>> 	    *IMR = 0x0000;   /* clear the IMR register */
	LARK	AR5,4
	SACL	* 
	.line	152
;>>>> 	    *IFR = 0x003F;   /* clear any pending core interrupts */
	LACK	63
	ADRK	2
	SACL	* 
	.line	153
;>>>> 	    *IMR = 0x0006;   /* enable desired core interrupts:T2peroid INT3&CAN ERROR HIGH INT2 */
	LACK	6
	SBRK	2
	SACL	* 
	.line	156
;>>>> 	    *EVAIMRA = 0x0000;                  /* enable desired EVA group A interrupts */
	SBRK	4
	MAR	* ,AR4
	ADRK	36
	SAR	AR5,*+,AR5
	.line	157
;>>>> 	    *EVAIMRB = 0x0001;        /* enable desired EVA group B interrupts:T2PINT ENABLE */
	MAR	*+,AR4
	SAR	AR5,*+,AR5
	.line	158
;>>>> 	    *EVAIMRC = 0x0000;                  /* enable desired EVA group C interrupts */
	MAR	*-,AR4
	SAR	AR5,*+
	.line	159
;>>>> 	    *EVAIFRA = 0xFFFF;                  /* clear all EVA group A interrupts */
	SPLK	#65535,*+
	.line	160
;>>>> 	    *EVAIFRB = 0xFFFF;                  /* clear all EVA group B interrupts */
	SPLK	#65535,*+
	.line	161
;>>>> 	    *EVAIFRC = 0xFFFF;                  /* clear all EVA group C interrupts */
	SPLK	#65535,* ,AR5
	.line	167
;>>>> 	     	*MDER=0x0040;			/*;MD2=1,MBX2为发送方式*/
	ADRK	64
	MAR	* ,AR3
	ADRK	108
	SAR	AR5,* 
	.line	168
;>>>> 	          *CAN_IFR=0xFFFF;     	/*;清全部CAN中断标志*/
	ADRK	9
	SPLK	#65535,* 
	.line	169
;>>>> 			*LAM1_H=0x7000;		/*;设置邮箱2、3的屏蔽ID寄存器    */
	ADRK	4
	SPLK	#28672,*+
	.line	170
;>>>> 			*LAM1_L=0xFFFF;		/*	;0则ID必须匹配      */
	SPLK	#65535,* 
	.line	172
;>>>> 	          *MCR=0x1000;			/*	;CCR=1 改变配置请求    */
	SBRK	11
	SPLK	#4096,* ,AR3

	.sym	_W_CCE,L1,0,6,0
L1:
	.line	173
;>>>> 	W_CCE:	if(*GSR&0x0010==0x0000)goto W_CCE;  /*;等待改变配置使能  */
	LARK	AR3,28935
	ZALS	* 
	.line	176
;>>>> 			*BCR2=0x0027;			/*	;波特率预分频寄存器	40M/(39+1)=1M   */
	LACK	39
	SBRK	3
	SACL	*+
	.line	177
;>>>> 			*BCR1=0x0013;			/*	;波特率设置为2+3+3=8  */
	LACK	19
	SACL	* 
	.line	178
;>>>> 			*MCR=*MCR&0xEFFF;     /*;CCR=0 改变配置结束请求				*/
	LACK	61439
	SBRK	2
	AND	* 
	SACL	* 

	.sym	_W_NCCE,L3,0,6,0
L3:
	.line	179
;>>>> 	W_NCCE: 	if(*GSR&0x0010==0x0010)goto W_NCCE;/*;等待改变配置不使能     */
	LARK	AR3,28935
	MAR	* ,AR3
	BIT	* ,15
	BBNZ	L3
	.line	183
;>>>> 	          *MDER=0x0040;			/*	;不使能邮箱,邮箱2设为接收方式*/
	LACK	64
	SBRK	7
	SACL	* 
	.line	184
;>>>> 			*MCR=0x0103;			/*	;CDR=1,数据区改变请求   */
	ADRK	3
	SPLK	#259,* ,AR4
	.line	186
;>>>> 	          *MSGID2H=0x4080; 			/*;设置邮箱2的控制字及ID 
;>>>> 										;IDE=0, AME=1, AAM=0
;>>>> 											;标准方式为MSGID2H[12~2]*/ 
	LARK	AR4,29201
	SPLK	#16512,*-
	.line	189
;>>>> 			 *MSGID2L=0xFFFF; 									
	SPLK	#65535,* 
	.line	190
;>>>> 	          *MSGCTRL2=0x0008;	/*	;设置控制域    */
	LACK	8
	ADRK	2
	SACL	* 
	.line	198
;>>>> 			*MBX2A=0x0000;			/*;邮箱2信息初始化    */
	LACK	0
	ADRK	2
	SACL	*+
	.line	199
;>>>> 			*MBX2B=0x0000;
	SACL	*+
	.line	200
;>>>> 			*MBX2C=0x0000;
	SACL	*+
	.line	201
;>>>> 			*MBX2D=0x0000;
	SACL	* 
	.line	204
;>>>> 			   *MSGID3H=0x4088; 
	ADRK	2
	SPLK	#16520,*-
	.line	205
;>>>> 			   *MSGID3L=0xFFFF;
	SPLK	#65535,* 
	.line	207
;>>>> 			*MSGCTRL3=0x0008;		/*	;RTR=0,DCL=8    */           
	LACK	8
	ADRK	2
	SACL	* 
	.line	209
;>>>> 			*MBX3A=0x000F;			
	LACK	15
	ADRK	2
	SACL	*+
	.line	210
;>>>> 			*MBX3B=0x0200;
	SPLK	#512,*+
	.line	211
;>>>> 			*MBX3C=0x0400;
	SPLK	#1024,*+
	.line	212
;>>>> 			*MBX3D=0x0400;
	SPLK	#1024,* ,AR3
	.line	215
;>>>> 			*MCR=0x2480;	/*	;DBO=1,ABO=1,STM=0   */    
	SPLK	#9344,* 
	.line	219
;>>>> 			*MDER=0x004C;			/*	;ME3=1,MBX3 发送, ME2=1 接收    */
	LACK	76
	SBRK	3
	SACL	* 
	.line	221
;>>>> 	          *CAN_IMR=0x8480;
	ADRK	10
	SPLK	#33920,*-
	.line	223
;>>>> 			*CAN_IFR=0xFFFF;		/*	;清全部中断标志  */
	SPLK	#65535,* ,AR1
	.line	229
;>>>> 	    sci_init();
	CALL	_sci_init
	.line	235
;>>>> 	        fir.dbuffer_ptr=&fir.dbuffer[0];
	LALK	_fir+5
	LDPK	_fir+1
	SACL	_fir+1
	.line	236
;>>>> 	        fir.coeff_ptr=&fir.coeff[0];
	LALK	_fir+15
	SACL	_fir
	.line	237
;>>>> 	        fir.init(&fir);      
	LALK	_fir+0
	SACL	*+
	LAC	_fir+26
	CALA
	MAR	*-,AR3
	.line	243
;>>>> 		*ADCTRL1=0x4000;      /*reset ADC */
	LARK	AR3,28832
	SPLK	#16384,* 
	.line	244
;>>>> 		asm("NOP");
NOP
	.line	245
;>>>> 		*ADCTRL1=0x0010;      
	LACK	16
	SACL	*+
	.line	260
;>>>> 		 *ADCTRL2=0x4242;  

⌨️ 快捷键说明

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