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