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

📄 pwm_1.asm

📁 非常实用的韩国dsp2407源代码
💻 ASM
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00       
*******************************************************
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx PWM_1 C:\WINDOWS.000\TEMP\PWM_1.if 
;	dspopt NOT RUN
;	C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS.000\TEMP\PWM_1.if C:\WINDOWS.000\TEMP\PWM_1.asm C:\WINDOWS.000\TEMP\PWM_1.tmp 
	.port
	.file	"PWM_1.c"
	.file	"C:\tic2xx\c2000\cgtools\include\regs240x.h"
	.globl	_portffff
	.globl	_portff0f
	.globl	_port0
	.globl	_port1
	.globl	_port2
	.globl	_port3
	.globl	_port4
	.file	"C:\tic2xx\c2000\cgtools\include\SCI.h"
	.globl	_SCISetBaud
	.globl	_SCIInit
	.globl	_SCIReset
	.globl	_SCISetRXINT
	.globl	_SCISetTXINT
	.globl	_SCISetRXINTPriority
	.globl	_SCISetTXINTPriority
	.globl	_SCIReceive
	.globl	_SCISend
	.globl	_SCIPrintHex
	.globl	_SCIPrintf
	.globl	_num_str
	.file	"PWM_1.c"
	.text

	.sym	_bad_trap,_bad_trap,32,2,0
	.globl	_bad_trap

	.func	19
;>>>> 	void bad_trap( void )
******************************************************
* FUNCTION DEF : _bad_trap
******************************************************
_bad_trap:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

L1:
	.line	3
;>>>> 		while(1) ;
	B	L1
	.endfunc	22,000000000H,1

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

	.func	25
;>>>> 	void main( void )
;>>>> 		UINT k,j;
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,5
	LAR	AR0,*0+

	.sym	_k,1,14,1,16
	.sym	_j,2,14,1,16
	.line	5
;>>>> 		DSPInit(PLLx4);
	LACK	0
	SACL	*+
	CALL	_DSPInit
	MAR	*-,AR3
	.line	7
;>>>> 		EVA_ENABLE; // PWM1,2绰 EVA俊 加秦乐栏骨肺 EVA 葛碘阑 劝己拳
	LARK	AR3,28696
	LACK	4
	OR	* 
	SACL	* ,AR4
	.line	8
;>>>> 		T1DISABLE;  // 老窜 timer甫 厚劝己拳
;>>>> 		//-------------------------------------------------------------------------
;>>>> 		// 1. setting PWM1 and 2, PWM 免仿 淬寸 巧阑 PWM 扁瓷栏肺 汲沥
	LARK	AR4,29700
	LACK	-65
	AND	* 
	SACL	* ,AR3
	.line	12
;>>>> 		SET_PWM1;
	ADRK	120
	LACK	64
	OR	* 
	SACL	* 
	.line	13
;>>>> 		SET_PWM2;
;>>>> 		// 2. Setting Timer1, PWM 林扁甫 搬沥茄促.
	LACK	128
	OR	* 
	SACL	* ,AR1
	.line	16
;>>>> 		T1PR = (CPU_clk()/PWM_PERIOD);  
;>>>> 		    //泅犁 CPU 悼累 林颇荐俊辑 荤侩窍绊磊窍绰 PWM 林颇荐甫 唱穿绢霖 蔼阑
;>>>> 		    // 鸥捞赣 悼累 林颇荐肺 汲沥窍搁 等促.
;>>>> 		// 3. ACTRA = Compare Action Control Register A
	CALL	_CPU_clk
	MAR	* ,AR2
	LARK	AR2,3
	MAR	*0+
	SACL	*+
	SACH	*-,AR1
	LACK	30000
	SACL	*+
	SACH	*+,AR2
	ZALS	*+
	ADDH	* ,AR1
	CALL	L$$DIVU
	LARK	AR3,29699
	MAR	* ,AR3
	SACL	* 
	.line	22
;>>>> 		ACTRA = 0x0009;
;>>>> 		    // bit3,2 are for PWM2 action mode : 10-active high, 01-active low
;>>>> 		  	// bit1,0 are for PWM1 action mode : 10-active high, 01-active low
;>>>> 	        // 抛胶飘甫 困秦 PWM2绰 active high肺, PWM1篮 active low肺 汲沥
;>>>> 		// 4. PWM duty 汲沥
	LACK	9
	ADRK	16
	SACL	* ,AR1
	.line	28
;>>>> 		CMPR1 = (unsigned int)(T1PR*0.1);		// CMPR1 -> PWM1 & PWM2
;>>>> 		    //  10% duty甫 爱绰 PWM 颇屈阑 父甸绢 夯促.                            	
;>>>> 		// 5. COMCONA = Compare Control Register A
	LALK	FL0
	RPTK	1
	TBLR	*+
	SSXM
	MAR	* ,AR3
	SBRK	16
	LAC	* ,AR1
	CALL	F$$ITOF
	CALL	F$$MUL
	CALL	F$$FTOU
	MAR	* ,AR3
	ADRK	20
	SACL	* 
	.line	32
;>>>> 		COMCONA = 0xC200;	           
;>>>> 		    //  bit 15 is for Compare Enable 	   
;>>>> 		    //  bit 9  is for Compare Output enable     	   	                                      	
;>>>> 	    // 6. 鸥捞赣 悼累 葛靛 汲沥                                               
	SBRK	6
	SPLK	#-15872,* 
	.line	37
;>>>> 		T1CON = 0xD040;  
;>>>> 		    //	bit 12,11 are for Count Mode Selection:10-continuous Up count mode
;>>>> 			//  bit 10,9,8 are for Input Clock Prescaler 000 - 	x/1
;>>>> 			//  bit 6 is for Timer Enable          
;>>>> 	    //-------------------------------------------------------------------------
	SBRK	13
	SPLK	#-12224,* ,AR4
	.line	43
;>>>> 	    SET_PC_OUT(BIT0);				// for debugging    
;>>>> 		while(1)
	LARK	AR4,28818
	LACK	-2
	AND	* 
	SACL	* 
	ADRK	10
	LACK	256
	OR	* 
	SACL	* ,AR2
	RSXM ;;;
L2:
	.line	48
;>>>> 			for(j=0;j<65000;j++)
	LACK	0
	LARK	AR2,2
	MAR	*0+
	SACL	* 
	ZALS	* 
	BNV	$+2
	MAR	*+
	SACL	*+
	SACH	*-
	LT	*+
	MPYK	1
	LPH	* 
	LACK	65000
	SPAC
	BNV	$+6
	BGZ	L5
	B	$+4
	BLEZ	L5
	SBRK	3
L4:
	.line	50
;>>>> 				k++;
	LAC	* 
	ADDK	1
	SACL	*+
	.line	48
	LAC	* 
	ADDK	1
	SACL	* 
	ZALS	* 
	BNV	$+2
	MAR	*+
	SACL	*+
	SACH	*-
	LT	*+
	MPYK	1
	LPH	* 
	LACK	65000
	SPAC
	SBRK	3
	BNV	$+6
	BLZ	L4
	B	$+4
	BGZ	L4
L5:
	.line	52
;>>>> 			TOGGLE(PORTC,BIT0);     // 悼累 犬牢 侩栏肺 LED 配臂
	LARK	AR3,28828
	LACK	1
	MAR	* ,AR3
	XOR	* 
	SACL	* ,AR2
	.line	53
	B	L2
	.endfunc	78,000000000H,5
*************************************************
* DEFINE FLOATING POINT CONSTANTS               *
*************************************************
	.text
FL0:	.float	1.e-1
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	_DSPInit
	.global	_CPU_clk
	.global	L$$DIVU
	.global	F$$ITOF
	.global	F$$MUL
	.global	F$$FTOU
	.end

⌨️ 快捷键说明

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