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

📄 cputimer.asm

📁 合众达2812开发例程
💻 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

⌨️ 快捷键说明

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