www.pudn.com > DPS2812_EXTAD.rar > cputimer.asm


************************************************************************* 
*	filename:	cputimer.asm 
*	designer:	戴展波 
*	date:		2004/12/20 
************************************************************************* 
 
		.file	"cputimer.asm" 
		.copy	"f2812.inc" 
		 
		.def	_InitTimer 
		.def	_ConfigCpuTimer0 
		.def	_ConfigCpuTimer1 
		.def	_ConfigCpuTimer2 
		.def	_StartCpuTimer0 
		.def	_StartCpuTimer1 
		.def	_StartCpuTimer2 
		.def	_StopCpuTimer0 
		.def	_StopCpuTimer1 
		.def	_StopCpuTimer2 
		.def	_ISRTimer0 
		.def	_ISRTimer1 
		.def	_ISRTimer2 
		 
		.text 
********************************************************************************* 
* 函数定义:void InitTimer(void) 
* 
* 功    能:初始化时钟											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_InitTimer: 
	;设置TIMER0初始化 
	MOVL	XAR6,#TIMER0PRD 
	MOV	*XAR6,#0FFFFh 
	MOVL	XAR6,#TIMER0PRDH 
	MOV	*XAR6,#0FFFFh 
	 
	;设置TIMER1初始化 
	MOVL	XAR6,#TIMER1PRD 
	MOV	*XAR6,#0FFFFh 
	MOVL	XAR6,#TIMER1PRDH 
	MOV	*XAR6,#0FFFFh 
	 
	;设置TIMER2初始化 
	MOVL	XAR6,#TIMER2PRD 
	MOV	*XAR6,#0FFFFh 
	MOVL	XAR6,#TIMER2PRDH 
	MOV	*XAR6,#0FFFFh 
	 
	; 
	MOVL	XAR6,#TIMER0TPR 
	MOV	*XAR6,#0 
	MOVL	XAR6,#TIMER0TPRH 
	MOV	*XAR6,#0 
	 
	; 
	MOVL	XAR6,#TIMER1TPR 
	MOV	*XAR6,#0 
	MOVL	XAR6,#TIMER1TPRH 
	MOV	*XAR6,#0 
	 
	; 
	MOVL	XAR6,#TIMER2TPR 
	MOV	*XAR6,#0 
	MOVL	XAR6,#TIMER2TPRH 
	MOV	*XAR6,#0 
	 
	;停止TIMER和重新LOAD时钟周期 
	MOVL	XAR6,#TIMER0TCR 
	OR	*XAR6,#30h 
	MOVL	XAR6,#TIMER1TCR 
	OR	*XAR6,#30h 
	MOVL	XAR6,#TIMER2TCR 
	OR	*XAR6,#30h 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void ConfigCpuTimer0(long period) 
* 
* 功    能:初始化时钟											* 
*																				* 
* 入口参数:period:	时钟周期	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_ConfigCpuTimer0: 
	MOVL	XAR6,#TIMER0PRD 
	MOV	*XAR6,AL 
	MOVL	XAR6,#TIMER0PRDH 
	MOV	*XAR6,AH 
	 
	MOVL	XAR6,#TIMER0TPR 
	MOV	*XAR6,#0 
	MOVL	XAR6,#TIMER0TPRH 
	MOV	*XAR6,#0 
	 
	MOVL	XAR6,#TIMER0TCR 
	MOV	*XAR6,#0CC30H 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void ConfigCpuTimer1(long period) 
* 
* 功    能:初始化时钟											* 
*																				* 
* 入口参数:period:	时钟周期	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_ConfigCpuTimer1: 
	MOVL	XAR6,#TIMER1PRD 
	MOV	*XAR6,AL 
	MOVL	XAR6,#TIMER1PRDH 
	MOV	*XAR6,AH 
	 
	MOVL	XAR6,#TIMER1TPR 
	MOV	*XAR6,#0 
	MOVL	XAR6,#TIMER1TPRH 
	MOV	*XAR6,#0 
	 
	MOVL	XAR6,#TIMER1TCR 
	MOV	*XAR6,#0CC30H 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void ConfigCpuTimer2(long period) 
* 
* 功    能:初始化时钟											* 
*																				* 
* 入口参数:period:	时钟周期	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_ConfigCpuTimer2: 
	MOVL	XAR6,#TIMER2PRD 
	MOV	*XAR6,AL 
	MOVL	XAR6,#TIMER2PRDH 
	MOV	*XAR6,AH 
	 
	MOVL	XAR6,#TIMER2TPR 
	MOV	*XAR6,#0 
	MOVL	XAR6,#TIMER2TPRH 
	MOV	*XAR6,#0 
	 
	MOVL	XAR6,#TIMER2TCR 
	MOV	*XAR6,#0CC30H 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void StartCpuTimer0(void) 
* 
* 功    能:启动时钟0											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_StartCpuTimer0: 
	MOVL	XAR6,#TIMER0TCR 
	AND	*XAR6,#0FFEFH 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void StartCpuTimer1(void) 
* 
* 功    能:启动时钟1											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_StartCpuTimer1: 
	MOVL	XAR6,#TIMER1TCR 
	AND	*XAR6,#0FFEFH 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void StartCpuTimer2(void) 
* 
* 功    能:启动时钟2 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_StartCpuTimer2: 
	MOVL	XAR6,#TIMER2TCR 
	AND	*XAR6,#0FFEFH 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void StopCpuTimer0(void) 
* 
* 功    能:停止时钟0											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_StopCpuTimer0: 
	MOVL	XAR6,#TIMER0TCR 
	OR	*XAR6,#10H 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void StartCpuTimer1(void) 
* 
* 功    能:停止时钟1											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_StopCpuTimer1: 
	MOVL	XAR6,#TIMER1TCR 
	OR	*XAR6,#10H 
	 
	LRETR 
	 
********************************************************************************* 
* 函数定义:void StopCpuTimer2(void) 
* 
* 功    能:停止时钟2											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
*********************************************************************************		 
_StopCpuTimer2: 
	MOVL	XAR6,#TIMER2TCR 
	OR	*XAR6,#10H 
	 
	LRETR 
 
********************************************************************************* 
* 函数定义:interrupt void ISRTimer0(void) 
* 
* 功    能:TIMER0中断											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
********************************************************************************* 
_ISRTimer0: 
	;SP指针为EVEN地址 
	ASP 
	 
	; 
	SPM	0 
	 
	;用户程序 
	 
	CLRC	INTM 
	 
	NASP 
	 
	IRET 
 
********************************************************************************* 
* 函数定义:interrupt void ISRTimer1(void) 
* 
* 功    能:TIMER1中断											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
********************************************************************************* 
_ISRTimer1: 
	;SP指针为EVEN地址 
	ASP 
 
	; 
	SPM	0 
	 
	;用户程序 
	 
	 
	CLRC	INTM 
 
	NASP 
	 
	IRET 
 
********************************************************************************* 
* 函数定义:interrupt void ISRTimer2(void) 
* 
* 功    能:TIMER2中断											* 
*																				* 
* 入口参数:无	 
*												* 
* 出口参数:无	 
*										* 
* 资源使用:XAR6																* 
*																				* 
********************************************************************************* 
_ISRTimer2: 
	;SP指针为EVEN地址 
	ASP 
	 
	PUSH	XAR6 
	 
	; 
	SPM	0 
	 
	MOVL	XAR6,#ADCTRL2 
	OR	*XAR6,#2000h 
	 
	CLRC	INTM 
	 
	POP	XAR6 
	 
	NASP 
	 
	IRET