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

📄 timer.asm

📁 TI TMS320F206中使用芯片内部定时器例子以及CMD文件的编写。
💻 ASM
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04       
*******************************************************
;	dspac -q -d_DEBUG -v2xx -iC:/ti/c2000/rtdx/include -iC:/ti/c2400/cgtools/include timer.c C:\DOCUME~1\mfk705\LOCALS~1\Temp\timer.
;	dspopt NOT RUN
;	dspcg -o -q -v2xx -o C:\DOCUME~1\mfk705\LOCALS~1\Temp\timer.if C:\DOCUME~1\mfk705\LOCALS~1\Temp\timer.asm C:\DOCUME~1\mfk705\LOCALS~1\Temp\timer.tmp 
	.port
	.bss	_num,2,1
	.bss	_view,2,1
	.file	"timer.c"
	.file	"F206_reg.h"
	.globl	_portFFE4
	.globl	_portFFE8
	.globl	_portFFF4
	.globl	_portFFF5
	.globl	_portFFF6
	.globl	_portFFF7
	.globl	_portFFEC
	.globl	_portFFF8
	.globl	_portFFF9
	.globl	_portFFFA
	.file	"timer.c"

	.sect	".cinit"
	.word	2,_num
	.long	0

	.sym	_num,_num,15,2,32
	.globl	_num
	.word	2,_view
	.long	0

	.sym	_view,_view,15,2,32
	.globl	_view
	.text

	.sym	_enable,_enable,32,2,0
	.globl	_enable

	.func	6
;>>>> 	void enable()
******************************************************
* FUNCTION DEF : _enable
******************************************************
_enable:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		 asm(" clrc INTM");
 clrc INTM
EPI0_1:
	.line	4
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	9,000000000H,1

	.sym	_disable,_disable,32,2,0
	.globl	_disable

	.func	11
;>>>> 	void disable()
******************************************************
* FUNCTION DEF : _disable
******************************************************
_disable:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 		 asm(" setc INTM");
 setc INTM
EPI0_2:
	.line	4
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	14,000000000H,1

	.sym	_timer,_timer,32,2,0
	.globl	_timer

	.func	17
;>>>> 	void interrupt timer()
;>>>> 	//	enable();
******************************************************
* FUNCTION DEF : _timer
******************************************************
_timer:
	CALL	I$$SAVE
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR4

	.line	5
;>>>> 		IFR=IFR;            //clear interrupt flag
	LARK	AR3,6
	LARK	AR4,6
	LAC	* ,AR3
	SACL	* 
	.line	6
;>>>> 		num=num+1;
	LACK	1
	LDPK	_num
	ADDS	_num
	ADDH	_num+1
	SACL	_num
	SACH	_num+1
	.line	7
;>>>> 		return;
EPI0_3:
	.line	8
	MAR	* ,AR1
	SBRK	1
	B	I$$REST,AR1   ;and return

	.endfunc	24,000000000H,1

	.sym	_nothing,_nothing,32,2,0
	.globl	_nothing

	.func	25
;>>>> 	void interrupt nothing()
******************************************************
* FUNCTION DEF : _nothing
******************************************************
_nothing:
	CALL	I$$SAVE
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR4

	.line	3
;>>>> 	      num=50;
	LACK	50
	LDPK	_num
	SACL	_num
	SACH	_num+1
	.line	4
;>>>> 	      IFR=IFR;            //clear interrupt flag
	LARK	AR3,6
	LARK	AR4,6
	LAC	* ,AR3
	SACL	* ,AR1
	.line	5
;>>>> 	      enable();
	CALL	_enable
	.line	6
;>>>> 	      return;
EPI0_4:
	.line	7
	SBRK	1
	B	I$$REST,AR1   ;and return

	.endfunc	31,000000000H,1

	.sym	_int2,_int2,32,2,0
	.globl	_int2

	.func	33
;>>>> 	void interrupt int2()
******************************************************
* FUNCTION DEF : _int2
******************************************************
_int2:
	CALL	I$$SAVE
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+

	.line	3
;>>>> 	      num=3;
;>>>> 	   //   enable();
	LACK	3
	LDPK	_num
	SACL	_num
	SACH	_num+1
	.line	5
;>>>> 	      return;
EPI0_5:
	.line	6
	SBRK	1
	B	I$$REST,AR1   ;and return

	.endfunc	38,000000000H,1

	.sym	_int_init,_int_init,32,2,0
	.globl	_int_init

	.func	40
;>>>> 	void int_init()
;>>>> 	  //	asm(" setc SXM");
;>>>> 	  //	asm(" clrs OVM");
;>>>> 	  ///	asm(" clrc CNF");
;>>>> 		//**********timer*************//
******************************************************
* FUNCTION DEF : _int_init
******************************************************
_int_init:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.line	7
;>>>> 		IMR=0x0000;
	LARK	AR3,4
	LACK	0
	SACL	* 
	.line	8
;>>>> 		IFR=0x3f;    				//CLEAR INT FLAG
	LACK	63
	ADRK	2
	SACL	* ,AR0
	.line	9
;>>>> 		TCR=TCR|B11_MSK|B10_MSK;    //Free Run Mode 
	IN	* ,0fff8h
	LAC	* ,AR1
	ORK	2048
	ORK	1024
	SACL	* 
	OUT	* ,0fff8h,AR0
	.line	10
;>>>> 		TCR=TCR+4;                  //Divide Frequence
;>>>> 		//TCR=TCR|B10_MSK;
	IN	* ,0fff8h
	LAC	* ,AR1
	ADDK	4
	SACL	* 
	OUT	* ,0fff8h,AR3
	.line	12
;>>>> 		PRD=0xC7;           		//Timer Const 
	ADRK	193
	MAR	* ,AR0
	SAR	AR3,*
	OUT	* ,0fff9h,AR3
	.line	13
;>>>> 	 	TIM=0x0000;                 //Timer count
	SBRK	199
	MAR	* ,AR0
	SAR	AR3,*
	OUT	* ,0fffah,AR3
	.line	14
;>>>> 	 	IMR=0x000|B2_MSK;			//Enable Timer interrupt
	LACK	4
	ADRK	4
	SACL	* ,AR1
EPI0_6:
	.line	15
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	54,000000000H,1

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

	.func	56
;>>>> 	main()
;>>>> 		unsigned long i;
;>>>> 		//asm(" clrc  INTM");
;>>>> 		//disable();
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+

	.sym	_i,1,15,1,32
	.line	6
;>>>> 		enable();
	CALL	_enable
	.line	7
;>>>> 		int_init();
	CALL	_int_init
	.line	8
;>>>> 		IFR=IFR;
	LARK	AR3,6
	LARK	AR4,6
	MAR	* ,AR4
	LAC	* ,AR3
	SACL	* 
	.line	9
;>>>> 		view=IFR;
	ZALS	* ,AR4
	LDPK	_view
	SACL	_view
	SACH	_view+1
	.line	10
;>>>> 		IFR=IFR;
	LAC	* ,AR3
	SACL	* ,AR2
	.line	12
;>>>> 		for(i=0;i<10000000;i++)
	LACK	0
	LARK	AR2,1
	MAR	*0+
	SACL	*+
	SACH	*-
	LT	*+
	MPYK	1
	LPH	* 
	LALK	305,15
	ORK	5760
	SPAC
	BNC	L2
	BZ	L2
	MAR	*-,AR0
L1:
	.line	14
;>>>> 				view=TIM;
	IN	* ,0fffah
	ZALS	* ,AR2
	LDPK	_view
	SACL	_view
	SACH	_view+1
	.line	12
	ZALS	*+
	ADDH	*-
	ADDK	1
	SACL	*+
	SACH	*-
	LT	*+
	MPYK	1
	LPH	*-,AR0
	LALK	305,15
	ORK	5760
	SPAC
	BZ	$+4
	BC	L1
L2:
	.line	16
;>>>> 		i=0;
	LACK	0
	MAR	* ,AR2
	LARK	AR2,1
	MAR	*0+
	SACL	*+
	SACH	* ,AR1
EPI0_7:
	.line	17
	SBRK	4
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	72,000000000H,3
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	I$$SAVE
	.global	I$$REST
	.end

⌨️ 快捷键说明

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