📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -