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

📄 fun.asm

📁 PWM.rar
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx fun.c C:\DOCUME~1\jjd\LOCALS~1\Temp\fun.if 
;	dspopt NOT RUN
;	C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\jjd\LOCALS~1\Temp\fun.if C:\DOCUME~1\jjd\LOCALS~1\Temp\fun.asm C:\DOCUME~1\jjd\LOCALS~1\Temp\fun.tmp 
	.port
	.bss	_pwm_half_per,1,1
	.file	"fun.c"
	.file	"f2407_c.h"
	.globl	_portFF0F
	.globl	_portFFFF
	.file	"fun.c"

	.sect	".cinit"
	.word	1,_pwm_half_per
	.word	3000

	.sym	_pwm_half_per,_pwm_half_per,14,2,16
	.globl	_pwm_half_per
	.text

	.sym	_sys_ini,_sys_ini,32,2,0
	.globl	_sys_ini

	.func	7
;>>>> 	void sys_ini(void)
******************************************************
* FUNCTION DEF : _sys_ini
******************************************************
_sys_ini:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.line	4
;>>>> 	    *SCSR1 = 0x00FD;
	LARK	AR3,28696
	LACK	253
	SACL	*+
	.line	21
;>>>> 	    *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
	LACK	11
	OR	* 
	ANDK	15
	SACL	* 
	.line	33
;>>>> 	    *WDCR  = 0x00E8;
	LACK	232
	ADRK	16
	SACL	* ,AR0
	.line	44
;>>>> 	    WSGR = 0x0040;
	LACK	64
	SACL	* 
	OUT	* ,0ffffh,AR3
	.line	55
;>>>> 	    *MCRA = 0x0fc0;                     /* group A pins */
	ADRK	103
	SPLK	#4032,* 
	.line	75
;>>>> 	    *MCRB = 0xFE00;                     /* group B pins */
	ADRK	2
	SPLK	#65024,* 
	.line	95
;>>>> 	    *MCRC = 0x0000;                     /* group C pins */
	LACK	0
	ADRK	2
	SACL	* ,AR4
	.line	115
;>>>> 		*IMR = 0x0000;                      /* clear the IMR register */
	LARK	AR4,4
	SACL	* 
	.line	116
;>>>> 	    *IFR = 0x003F;                      /* clear any pending core interrupts */
	LACK	63
	ADRK	2
	SACL	* 
	.line	118
;>>>> 	    *EVAIMRA = 0x0000;                  /* enable desired EVA group A interrupts */
	LARK	AR5,29740
	SBRK	6
	MAR	* ,AR5
	SAR	AR4,*+
	.line	119
;>>>> 	    *EVAIMRB = 0x0000;                  /* enable desired EVA group B interrupts */
	SAR	AR4,*+
	.line	120
;>>>> 	    *EVAIMRC = 0x0000;                  /* enable desired EVA group C interrupts */
	SAR	AR4,*+
	.line	121
;>>>> 	    *EVAIFRA = 0xFFFF;                  /* clear all EVA group A interrupts */
	SPLK	#65535,*+
	.line	122
;>>>> 	    *EVAIFRB = 0xFFFF;                  /* clear all EVA group B interrupts */
	SPLK	#65535,*+
	.line	123
;>>>> 	    *EVAIFRC = 0xFFFF;                  /* clear all EVA group C interrupts */
	SPLK	#65535,* 
	.line	125
;>>>> 	    *EVBIFRA = 0xFFFF;                  /* clear all EVB group A interrupts */
	ADRK	254
	SPLK	#65535,*+
	.line	126
;>>>> 	    *EVBIFRB = 0xFFFF;                  /* clear all EVB group B interrupts */
	SPLK	#65535,*+
	.line	127
;>>>> 	    *EVBIFRC = 0xFFFF;                  /* clear all EVB group C interrupts */
	SPLK	#65535,* 
	.line	128
;>>>> 	    *EVBIMRA = 0x0000;                  /* enable desired EVB group A interrupts */
	SBRK	5
	SAR	AR4,*+
	.line	129
;>>>> 	    *EVBIMRB = 0x0000;                  /* enable desired EVB group B interrupts */
	SAR	AR4,*+
	.line	130
;>>>> 	    *EVBIMRC = 0x0000;                  /* enable desired EVB group C interrupts */
	SAR	AR4,* ,AR1
EPI0_1:
	.line	131
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	137,000000000H,1

	.sym	_pwm_init,_pwm_init,32,2,0
	.globl	_pwm_init

	.func	139
;>>>> 	void pwm_init(void)
******************************************************
* FUNCTION DEF : _pwm_init
******************************************************
_pwm_init:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.line	5
;>>>> 	    *T1CON = 0x0000;                    /* disable timer 1 */
	LARK	AR3,29700
	LACK	0
	SACL	* 
	.line	6
;>>>> 	    *T2CON = 0x0000;                    /* disable timer 2 */
	ADRK	4
	SACL	* 
	.line	8
;>>>> 	    *GPTCONA = 0x0000;                  /* configure GPTCONA */
	SBRK	8
	SACL	*+
	.line	25
;>>>> 	    *T1CNT = 0x0000;                    /* clear timer counter */
	SACL	* 
	.line	26
;>>>> 	    *T1PR = pwm_half_per;               /* set timer period */
	ADRK	2
	BLKD	#_pwm_half_per,* 
	.line	27
;>>>> 	    *DBTCONA = 0x0000;                  /* deadband units off */
	ADRK	18
	SACL	* ,AR1
	.line	28
;>>>> 	    *CMPR1 = pwm_half_per*0.25;         /* set PWM1 duty cycle */
	LALK	FL0
	RPTK	1
	TBLR	*+
	LDPK	_pwm_half_per
	ZALS	_pwm_half_per
	CALL	F$$UTOF
	CALL	F$$MUL
	CALL	F$$FTOU
	MAR	* ,AR3
	ADRK	2
	SACL	* 
	.line	30
;>>>> 	    *ACTRA = 0x0666;                    /* PWM1 pin set active high */     
	SBRK	4
	SPLK	#1638,* 
	.line	42
;>>>> 	     *COMCONA = 0x8200;                 /* configure COMCON register */
	SBRK	2
	SPLK	#33280,* 
	.line	53
;>>>> 	     *T1CON = 0x0840;                   /* configure T1CON register */
	SBRK	13
	SPLK	#2112,* ,AR4
	.line	69
;>>>> 	    *IMR |= 0x0002;                      /* enable desired core interrupts (in2)*/
	LARK	AR4,4
	LACK	2
	OR	* 
	SACL	* ,AR3
	.line	73
;>>>> 	    *EVAIMRA |= 0x0200;                  /* enable desired EVA group A interrupts */
	ADRK	40
	LACK	512
	OR	* 
	SACL	* ,AR4
	.line	74
;>>>> 	    *EVAIMRB = 0x0000;                  /* enable desired EVA group B interrupts */
	SBRK	4
	MAR	* ,AR3
	MAR	*+
	SAR	AR4,*+
	.line	75
;>>>> 	    *EVAIMRC = 0x0000;                  /* enable desired EVA group C interrupts */
	SAR	AR4,* ,AR1
EPI0_2:
	.line	77
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	215,000000000H,1

	.sym	_inter2_isr,_inter2_isr,32,2,0
	.globl	_inter2_isr

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

	.line	3
;>>>> 		*EVAIFRA = *EVAIFRA & 0x0200;
	LARK	AR3,29743
	LACK	512
	AND	* 
	SACL	* ,AR4
	.line	4
;>>>> 		if(*PIVR==0x0029)             /*time1 overbelow interrupt*/
	LARK	AR4,28702
	LAC	* 
	SUBK	41
	BNZ	L1
	.line	7
;>>>> 			*CMPR1= pwm_half_per*0.25;	
	MAR	* ,AR1
	LALK	FL0
	RPTK	1
	TBLR	*+
	LDPK	_pwm_half_per
	ZALS	_pwm_half_per
	CALL	F$$UTOF
	CALL	F$$MUL
	CALL	F$$FTOU
	MAR	* ,AR3
	SBRK	24
	SACL	*+,AR1
	.line	8
;>>>> 			*CMPR2= pwm_half_per*0.5;
	LALK	FL1
	RPTK	1
	TBLR	*+
	ZALS	_pwm_half_per
	CALL	F$$UTOF
	CALL	F$$MUL
	CALL	F$$FTOU
	MAR	* ,AR3
	SACL	*+,AR1
	.line	9
;>>>> 			*CMPR3= pwm_half_per*0.75;
	LALK	FL2
	RPTK	1
	TBLR	*+
	ZALS	_pwm_half_per
	CALL	F$$UTOF
	CALL	F$$MUL
	CALL	F$$FTOU
	MAR	* ,AR3
	SACL	* 
L1:
	.line	11
;>>>> 		asm(" CLRC INTM");
 CLRC INTM
EPI0_3:
	.line	12
	MAR	* ,AR1
	SBRK	1
	B	I$$REST,AR1   ;and return

	.endfunc	229,000000000H,1
*************************************************
* DEFINE FLOATING POINT CONSTANTS               *
*************************************************
	.text
FL0:	.float	2.5e-1
FL1:	.float	5.e-1
FL2:	.float	7.5e-1
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	F$$UTOF
	.global	F$$MUL
	.global	F$$FTOU
	.global	I$$SAVE
	.global	I$$REST
	.end

⌨️ 快捷键说明

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