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

📄 sci.asm

📁 DSP部分功能测试 串口
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04       
*******************************************************
;	dspac -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include sci.c C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.if 
;	dspopt NOT RUN
;	dspcg -o -v2xx -o C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.if C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.asm C:\DOCUME~1\ADMINI~1.GUO\LOCALS~1\Temp\sci.tmp 
	.port
	.bss	_uiRecNum,1,1
	.bss	_cParaNo,1
	.bss	_SciRecData,10
	.bss	_Len_RecChar,1
	.bss	_uldata_fh,1
	.file	"sci.c"
	.file	"f2407_c.h"
	.globl	_portFF0F
	.globl	_portFFFF
	.file	"D:/CCStudio_v3.1/c2400/cgtools/include\stdio.h"
	.sym	_size_t,0,14,13,16

	.stag	.fake0,112
	.member	_fd,0,4,8,16
	.member	_buf,16,28,8,16
	.member	_pos,32,28,8,16
	.member	_bufend,48,28,8,16
	.member	_buff_stop,64,28,8,16
	.member	_flags,80,14,8,16
	.member	_index,96,4,8,16
	.eos
	.sym	_FILE,0,8,13,112,.fake0
	.sym	_fpos_t,0,5,13,32

	.stag	.fake1,272
	.member	_name,0,50,8,144,,9
	.member	_flags,144,13,8,16
	.member	_OPEN,160,148,8,16
	.member	_CLOSE,176,148,8,16
	.member	_READ,192,148,8,16
	.member	_WRITE,208,148,8,16
	.member	_LSEEK,224,149,8,16
	.member	_UNLINK,240,148,8,16
	.member	_RENAME,256,148,8,16
	.eos
	.sym	__DEVICE,0,8,13,272,.fake1
	.globl	__ftable
	.globl	__tmpnams
	.globl	_remove
	.globl	_rename
	.globl	_tmpfile
	.globl	_tmpnam
	.globl	_fclose
	.globl	_fopen
	.globl	_freopen
	.globl	_setbuf
	.globl	_setvbuf
	.globl	_fflush
	.globl	_fprintf
	.globl	_fscanf
	.globl	_printf
	.globl	_scanf
	.globl	_sprintf
	.globl	_sscanf
	.globl	_vfprintf
	.globl	_vprintf
	.globl	_vsprintf
	.globl	_fgetc
	.globl	_fgets
	.globl	_fputc
	.globl	_fputs
	.globl	_getc
	.globl	_getchar
	.globl	_gets
	.globl	_putc
	.globl	_putchar
	.globl	_puts
	.globl	_ungetc
	.globl	_fread
	.globl	_fwrite
	.globl	_fgetpos
	.globl	_fseek
	.globl	_fsetpos
	.globl	_ftell
	.globl	_rewind
	.globl	_clearerr
	.globl	_feof
	.globl	_ferror
	.globl	_perror
	.globl	_getenv
	.globl	_add_device
	.file	"D:/CCStudio_v3.1/c2400/cgtools/include\string.h"
	.globl	_memchr
	.globl	_memcmp
	.globl	_memcpy
	.globl	_memmove
	.globl	_memset
	.globl	_strcat
	.globl	_strchr
	.globl	_strcmp
	.globl	_strcoll
	.globl	_strcpy
	.globl	_strcspn
	.globl	_strerror
	.globl	_strlen
	.globl	_strncat
	.globl	_strncmp
	.globl	_strncpy
	.globl	_strpbrk
	.globl	_strrchr
	.globl	_strspn
	.globl	_strstr
	.globl	_strtok
	.globl	_strxfrm
	.file	"sci.h"
	.sym	_uchar,0,12,13,16
	.sym	_uint,0,14,13,16
	.sym	_ulong,0,15,13,32
	.globl	_test_sci
	.globl	_UartRec
	.globl	_sci_init
	.file	"sci.c"
	.globl	_SciRecBuf
	.globl	_SciRecData
	.globl	_read_flag
	.globl	_Encode_counter
	.globl	_Maxest_counter
	.globl	_ucSq
	.globl	_pc_qubai
	.globl	_pc_tuixiao
	.globl	_pc_impact
	.globl	_pc_fangbai
	.globl	_ReadArr
	.globl	_uldata_fh
	.globl	_cParaNo
	.globl	_uipreangle
	.globl	_ltoascii
	.globl	_ltofascii
	.globl	_Len_RecChar
	.globl	_uiRecNum
	.text

	.sym	_sci_init,_sci_init,32,2,0
	.globl	_sci_init

	.func	27
;>>>> 	void sci_init(void)
******************************************************
* FUNCTION DEF : _sci_init
******************************************************
_sci_init:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		disable_int();
	CALL	_disable_int
	.line	4
;>>>> 		*SCSR1=*SCSR1|0x0040;	//enable SCI clock//
	LARK	AR3,28696
	LACK	64
	MAR	* ,AR3
	OR	* 
	SACL	* 
	.line	5
;>>>> 		*MCRA=*MCRA|0x0003;	//enable TXD and RXD//
	LACK	3
	ADRK	120
	OR	* 
	SACL	* 
	.line	6
;>>>> 		*SCICCR=0x07;  //1 stop bit ,no even(odd)check,8bitdata;
	LACK	7
	SBRK	64
	SACL	*+
	.line	7
;>>>> 		*SCICTL1=0x0013; //no RX ERR,SCI SRESET,no TXWAKE,no sleep,enable TX & RX;
	LACK	19
	SACL	* 
	.line	8
;>>>> 		*SCICTL2=0x0002; //enable RX int,disable TX int;03:enable TX & RX int;
	LACK	2
	ADRK	3
	SACL	* 
	.line	9
;>>>> 		*SCIHBAUD=(BAUD_9600_40M/0x100); //BAUD : 9600bps;
	SBRK	2
	SACL	*+
	.line	10
;>>>> 		*SCILBAUD=(BAUD_9600_40M%0x100);
	LACK	8
	SACL	* 
	.line	11
;>>>> 		*SCIPRI = 0x00;   //SCI为高优先级中断 
	LACK	0
	ADRK	12
	SACL	* 
	.line	12
;>>>> 		*SCICTL1=0x0033;  //使SCI脱离复位状态;
	LACK	51
	SBRK	14
	SACL	* 
	.line	13
;>>>> 		*PADATDIR=*PADATDIR|0x0003;
	LACK	3
	ADRK	71
	OR	* 
	SACL	* ,AR4
	.line	14
;>>>> 		*IMR = *IMR|0x01;
	LARK	AR4,4
	LACK	1
	OR	* 
	SACL	* ,AR1
	.line	15
;>>>> 		enable_int();
	CALL	_enable_int
EPI0_1:
	.line	16
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	42,000000000H,1

	.sym	_send_char_com,_send_char_com,32,2,0
	.globl	_send_char_com

	.func	46
;>>>> 	void send_char_com( unsigned char ch)
******************************************************
* FUNCTION DEF : _send_char_com
******************************************************
_send_char_com:

LF2	.set	0

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

	.sym	_ch,-3+LF2,12,9,16
	.line	2
	.line	4
;>>>> 		while ((*SCICTL2 & 0x0080) == 0x0000)
	LARK	AR3,28756
	BIT	* ,8
	BBNZ	L2
	MAR	* ,AR1
L1:
	.line	6
;>>>> 			delay(0x01);
;>>>> 		} ;
	LACK	1
	SACL	*+
	CALL	_delay
	MAR	*-,AR3
	.line	4
	LARK	AR3,28756
	BIT	* ,8,AR1
	BBZ	L1
L2:
	.line	8
;>>>> 		*SCITXBUF = ch;
	MAR	* ,AR2
	LARK	AR2,-3+LF2
	MAR	*0+
	LAC	* ,AR3
	ADRK	5
	SACL	* 
	.line	9
;>>>> 		while ((*SCICTL2 & 0x0040) == 0x0000)
	SBRK	5
	BIT	* ,9
	BBNZ	L4
	MAR	* ,AR1
L3:
	.line	11
;>>>> 			delay(0x1);
;>>>> 		} ;  
;>>>> 	//	delay(0xff);
	LACK	1
	SACL	*+
	CALL	_delay
	MAR	*-,AR3
	.line	9
	LARK	AR3,28756
	BIT	* ,9,AR1
	BBZ	L3
L4:
EPI0_2:
	.line	16
	MAR	* ,AR1
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	61,000000000H,1

	.sym	_send_string_com,_send_string_com,32,2,0
	.globl	_send_string_com

	.func	67
;>>>> 	void send_string_com(char *str, unsigned int strlen) 
******************************************************
* FUNCTION DEF : _send_string_com
******************************************************
_send_string_com:

LF3	.set	0

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

	.sym	_str,-3+LF3,18,9,16
	.sym	_strlen,-4+LF3,14,9,16
	.sym	_k,1,14,1,16
	.line	2
;>>>> 		unsigned int k ; 
	.line	4
;>>>> 		k=0;
;>>>> 		do 
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	* 
L5:
	.line	7
;>>>> 			send_char_com(*(str + k)); 
	LAC	* 
	SBRK	4-LF3
	ADD	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_send_char_com
	MAR	*-,AR2
	.line	8
;>>>> 			k++; 
	LARK	AR2,1
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	.line	10
;>>>> 		while (k < strlen); 
	ZALS	* 
	SBRK	5-LF3
	SUBS	* 
	ADRK	5-LF3
	BLZ	L5
EPI0_3:
	.line	12
	MAR	* ,AR1
	SBRK	3
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	78,000000000H,2

	.sym	_send_num_com,_send_num_com,46,2,0
	.globl	_send_num_com

	.func	84
;>>>> 	unsigned int send_num_com(unsigned long ul_x,unsigned int n_bit)
******************************************************
* FUNCTION DEF : _send_num_com
******************************************************
_send_num_com:

LF4	.set	0

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

	.sym	_ul_x,-4+LF4,15,9,32
	.sym	_n_bit,-5+LF4,14,9,16
	.sym	_asi_num,1,60,1,320,,20
	.sym	_i,21,4,1,16
	.line	2
;>>>> 		unsigned char  asi_num[20];
;>>>> 		int i;
	.line	6
;>>>> 		for (i = 0; i<n_bit ; i++)
	LACK	0
	LARK	AR2,21
	MAR	*0+
	SACL	* 
	ZALS	* 
	SBRK	26-LF4
	SUBS	* 
	BGEZ	L7
	MAR	*+,AR1
L6:
	.line	8
;>>>> 			asi_num[i]= (unsigned char)(ul_x%10 + 0x30);
	LACK	10
	SACL	*+
	SACH	*+,AR2
	ZALS	*+
	ADDH	* ,AR1
	CALL	L$$MODU
	ADDK	48
	SACL	*+,AR2
	ADRK	24-LF4
	LAR	AR3,* ,AR3
	MAR	*0+,AR1
	MAR	*-
	LAC	* ,AR3
	MAR	*+
	SACL	* ,AR1
	.line	9
;>>>> 			ul_x = ul_x/10;	
	LACK	10
	SACL	*+
	SACH	*+,AR2
	SBRK	25-LF4
	ZALS	*+
	ADDH	*-,AR1
	CALL	L$$DIVU
	MAR	* ,AR2
	SACL	*+
	SACH	* 
	.line	6
	ADRK	24-LF4
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SBRK	26-LF4
	SUBS	*+,AR1
	BLZ	L6
L7:
	.line	11
;>>>> 		i = 0;
;>>>> 	//	if(uldata_fh  == 0x2d)
;>>>> 	//	{
;>>>> 	//		send_char_com(0x2d);
;>>>> 	//		i = 1;
;>>>> 	//	}
	LACK	0
	MAR	* ,AR2
	LARK	AR2,21
	MAR	*0+
	SACL	* 
	.line	17
;>>>> 		for( ; i<n_bit ;i++ )
	ZALS	* 
	SBRK	26-LF4
	SUBS	* 
	BGEZ	L9
L8:
	.line	19
;>>>> 			send_char_com(asi_num[n_bit-1-i]);
	LAC	* ,AR0
	SUBK	1
	SAR	AR0,*
	ADDS	* ,AR2
	ADDK	1
	ADRK	26-LF4
	SUB	* ,AR0
	SACL	* 
	LAR	AR3,* ,AR3
	LAC	* ,AR1
	SACL	*+
	CALL	_send_char_com
	MAR	*-,AR2
	.line	17
	LARK	AR2,21
	MAR	*0+
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	SBRK	26-LF4
	SUBS	* 
	BLZ	L8
L9:
	.line	22
;>>>> 		return(0);
	LACK	0
EPI0_4:
	.line	23
	MAR	* ,AR1
	SBRK	23
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	106,000000000H,22

	.sym	_test_sci,_test_sci,46,2,0
	.globl	_test_sci

	.func	110
;>>>> 	unsigned int test_sci(void)
;>>>> 		unsigned int data_to_send,data_received; 
******************************************************
* FUNCTION DEF : _test_sci
******************************************************
_test_sci:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+

	.sym	_data_to_send,1,14,1,16
	.sym	_data_received,2,14,1,16
	.line	5
;>>>> 		if(read_flag == 1)
;>>>> 		//	*PBDATDIR = *PBDATDIR | 0xffff;
	LDPK	_read_flag
	LAC	_read_flag
	SUBK	1
	BNZ	L10
	.line	9
;>>>> 			DIE_H;
	LARK	AR3,28826
	LACK	1028
	MAR	* ,AR3
	OR	* 
	SACL	* ,AR1
	.line	11
;>>>> 			delay(0x10); 
	LACK	16
	SACL	*+
	CALL	_delay
	MAR	*-
	.line	12
;>>>> 			send_num_com(Encode_counter,6);
	LACK	6
	SACL	*+
	LDPK	_Encode_counter
	ZALS	_Encode_counter
	ADDH	_Encode_counter+1
	SACL	*+
	SACH	*+
	CALL	_send_num_com
	SBRK	3
	.line	13
;>>>> 			send_string_com(SciRecBuf,Len_RecChar);
	BLKD	_Len_RecChar+0,*+
	LALK	_SciRecBuf+0
	SACL	*+
	CALL	_send_string_com
	SBRK	2
	.line	15
;>>>> 			while ((*SCICTL2&0x0040) == 0x0000)
	LARK	AR3,28756
	MAR	* ,AR3
	BIT	* ,9
	BBNZ	L12
	MAR	* ,AR1
L11:
	.line	16
;>>>> 			{delay(0x01);
;>>>> 			} ;
	LACK	1
	SACL	*+
	CALL	_delay
	MAR	*-,AR3
	.line	15
	LARK	AR3,28756
	BIT	* ,9,AR1
	BBZ	L11
L12:
	.line	18
;>>>> 			delay(0xff);
;>>>> 			//*PBDATDIR=*PBDATDIR & 0xfffb;
	MAR	* ,AR1

⌨️ 快捷键说明

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