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

📄 myexample_c.asm

📁 TI公司DSP C2000学习入门程序
💻 ASM
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.02       
*******************************************************
;	dspac -v2xx -iD:/ti/c2400/cgtools/include myexample_c.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.if 
;	dspopt NOT RUN
;	dspcg -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.tmp 
	.port
	.bss	_LED_index,1,1
	.file	"myexample_c.c"
	.file	"f2407_c.h"
	.globl	_portFF0F
	.globl	_portFFFF
	.file	"myexample_c.c"
	.globl	_port0000
	.globl	_port0001
	.globl	_port0002
	.globl	_port0003
	.globl	_port0004
	.globl	_port0030
	.globl	_port0040
	.globl	_LED_index
	.text

	.sym	_main,_main,32,2,0
	.globl	_main

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

	.line	5
;>>>> 	    *SCSR1 = 0x00FD;
	LARK	AR3,28696
	LACK	253
	SACL	*+
	.line	22
;>>>> 	    *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
	LACK	11
	OR	* 
	ANDK	15
	SACL	* 
	.line	34
;>>>> 	    *WDCR  = 0x00E8;
	LACK	232
	ADRK	16
	SACL	* ,AR0
	.line	45
;>>>> 	    WSGR = 0x0040;
	LACK	64
	SACL	* 
	OUT	* ,0ffffh,AR3
	.line	56
;>>>> 	    *MCRA = 0x03E0;                     /* group A pins */
	ADRK	103
	SPLK	#992,* 
	.line	76
;>>>> 	    *MCRB = 0xFE00;                     /* group B pins */
	ADRK	2
	SPLK	#65024,* 
	.line	96
;>>>> 	    *MCRC = 0x0000;                     /* group C pins */
	LACK	0
	ADRK	2
	SACL	* 
	.line	118
;>>>> 	    *PCDATDIR = *PCDATDIR | 0x0100;
	LACK	256
	ADRK	8
	OR	* 
	SACL	* ,AR4
	.line	122
;>>>> 	    *T1CON = 0x0000;                    /* disable timer 1 */
	LARK	AR4,29700
	LACK	0
	SACL	* 
	.line	123
;>>>> 	    *T2CON = 0x0000;                    /* disable timer 2 */
	ADRK	4
	SACL	* 
	.line	125
;>>>> 	    *GPTCONA = 0x0000;                  /* configure GPTCONA */
	SBRK	8
	SACL	*+
	.line	142
;>>>> 	    *T1CNT = 0x0000;                    /* clear timer counter */
	SACL	* 
	.line	143
;>>>> 	    *T1PR = pwm_half_per;               /* set timer period */
	ADRK	2
	SPLK	#1000,* 
	.line	144
;>>>> 	    *DBTCONA = 0x0a6c;                  /* deadband units off */
	ADRK	18
	SPLK	#2668,* 
	.line	145
;>>>> 	    *CMPR1 = pwm_duty;                  /* set PWM1 duty cycle */
	ADRK	2
	SPLK	#750,*+
	.line	146
;>>>> 	    *CMPR2 = pwm_duty;                  /* set PWM1 duty cycle */
	SPLK	#750,* 
	.line	148
;>>>> 	    *ACTRA = 0x00AA;                    /* PWM1 pin set active high */     
	LACK	170
	SBRK	5
	SACL	* 
	.line	160
;>>>> 	     *COMCONA = 0x8200;                 /* configure COMCON register */
	SBRK	2
	SPLK	#33280,* 
	.line	171
;>>>> 	     *T1CON = 0x0840;                   /* configure T1CON register */
	SBRK	13
	SPLK	#2112,*+
	.line	187
;>>>> 	    *T2CNT = 0x0000;                    /* clear timer counter */
	LACK	0
	SACL	* 
	.line	188
;>>>> 	    *T2PR = timer2_per;                 /* set timer period */
	ADRK	2
	SPLK	#40000,*+
	.line	190
;>>>> 	    *T2CON = 0xD740;                    /* configure T2CON register */
	SPLK	#55104,* ,AR5
	.line	205
;>>>> 	    LED_index = 0x0001;                 /* initialize the LED index */
	LACK	1
	LDPK	_LED_index
	SACL	_LED_index
	.line	208
;>>>> 	    *IMR = 0x0000;                      /* clear the IMR register */
	LARK	AR5,4
	LACK	0
	SACL	* 
	.line	209
;>>>> 	    *IFR = 0x003F;                      /* clear any pending core interrupts */
	LACK	63
	ADRK	2
	SACL	* 
	.line	210
;>>>> 	    *IMR = 0x0004;                      /* enable desired core interrupts */
	LACK	4
	SBRK	2
	SACL	* ,AR4
	.line	213
;>>>> 	    *EVAIFRA = 0xFFFF;                  /* clear all EVA group A interrupts */
	ADRK	39
	SPLK	#65535,*+
	.line	214
;>>>> 	    *EVAIFRB = 0xFFFF;                  /* clear all EVA group B interrupts */
	SPLK	#65535,*+
	.line	215
;>>>> 	    *EVAIFRC = 0xFFFF;                  /* clear all EVA group C interrupts */
	SPLK	#65535,* ,AR5
	.line	216
;>>>> 	    *EVAIMRA = 0x0000;                  /* enable desired EVA group A interrupts */
	SBRK	4
	MAR	* ,AR4
	SBRK	5
	SAR	AR5,*+,AR5
	.line	217
;>>>> 	    *EVAIMRB = 0x0001;                  /* enable desired EVA group B interrupts */
	MAR	*+,AR4
	SAR	AR5,*+,AR5
	.line	218
;>>>> 	    *EVAIMRC = 0x0000;                  /* enable desired EVA group C interrupts */
	MAR	*-,AR4
	SAR	AR5,* ,AR5
	.line	220
;>>>> 	    *EVBIFRA = 0xFFFF;                  /* clear all EVB group A interrupts */
	LARK	AR5,29999
	SPLK	#65535,*+
	.line	221
;>>>> 	    *EVBIFRB = 0xFFFF;                  /* clear all EVB group B interrupts */
	SPLK	#65535,*+
	.line	222
;>>>> 	    *EVBIFRC = 0xFFFF;                  /* clear all EVB group C interrupts */
	SPLK	#65535,* ,AR4
	.line	223
;>>>> 	    *EVBIMRA = 0x0000;                  /* enable desired EVB group A interrupts */
	LACK	0
	ADRK	254
	SACL	*+
	.line	224
;>>>> 	    *EVBIMRB = 0x0000;                  /* enable desired EVB group B interrupts */
	SACL	*+
	.line	225
;>>>> 	    *EVBIMRC = 0x0000;                  /* enable desired EVB group C interrupts */
	SACL	* 
	.line	228
;>>>> 	    asm(" CLRC INTM");                  /* enable global interrupts */
 CLRC INTM
L1:
	.line	231
;>>>> 	    while(1)  ;                           /* endless loop, wait for interrupt */
	B	L1
	.endfunc	345,000000000H,1

	.sym	_timer2_isr,_timer2_isr,32,2,0
	.globl	_timer2_isr

	.func	349
;>>>> 	interrupt void timer2_isr(void)
******************************************************
* FUNCTION DEF : _timer2_isr
******************************************************
_timer2_isr:
	CALL	I$$SAVE
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.line	4
;>>>> 	     *EVAIFRB = *EVAIFRB & 0x0001;      /* clear T2PINT flag */
	LARK	AR3,29744
	LACK	1
	AND	* 
	SACL	* 
	.line	7
;>>>> 	     LED = LED_index;                   /* light the LEDs */
	LDPK	_LED_index
	OUT	_LED_index,040h
	.line	8
;>>>> 	     LED_index = LED_index << 1;        /* left shift LED index */
	LAC	_LED_index,1
	SACL	_LED_index
	.line	9
;>>>> 	     if(LED_index == 0x0100)  LED_index = 0x0001;    /* reset LED index */
	LAC	_LED_index
	SUBK	256
	BNZ	L2
	LACK	1
	SACL	_LED_index
L2:
	.line	12
;>>>> 	     *PCDATDIR = *PCDATDIR ^ 0x0001;    /* XOR the IOPC0 bit to toggle the pin */
	LARK	AR4,28828
	LACK	1
	MAR	* ,AR4
	XOR	* 
	SACL	* ,AR1
EPI0_2:
	.line	14
	SBRK	1
	B	I$$REST,AR1   ;and return

	.endfunc	362,000000000H,1

	.sym	_LED_index,_LED_index,14,2,16
	.globl	_LED_index
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	I$$SAVE
	.global	I$$REST
	.end

⌨️ 快捷键说明

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