timer.c

来自「跑马灯试验」· C语言 代码 · 共 81 行

C
81
字号
/****************************************Copyright (c)**************************************************
**                              
**                                 成都和勤科技发展有限公司
**                                  
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: timer.c
**创   建   人: 杨承凯
**创 建 日  期 : 2007年1月23日
**最后修改日期: 2007年4月3日
**描        述: 以定时器2为系统定时器,产生1ms的时基
********************************************************************************************************/
#define _TIMER_C_

#include "std\Config.h"
#include "Timer.h"



//定时器中断次数
uint16 xdata g_CurCount;
bit   g_Overflow=0;
uint16  tmp = -(unsigned int)(SYSCLK / (12000 /*  12*1000  */ ));  //1ms中断一次

/****************************************************************************
* 名	称:TimerInit()
* 功	能:spi初始化函数
* 入口参数:无
* 出口参数:无
* 说	明:无
****************************************************************************/
void TimerInit(void)
{
	CKCON &= ~0x10;
	TMR2CN = 0x00;
	TMR2RLH = HIBYTE(tmp);
	TMR2RLL = LOBYTE(tmp);
	TMR2H = HIBYTE(tmp);
	TMR2L = LOBYTE(tmp);
	TR2 = 1;	//定时器2允许
	IE |= 0xA0;

}


/****************************************************************************
* 名	称:TimerInt()
* 功	能:Timer2中断程序
* 入口参数:无
* 出口参数:无
* 说	明:无
****************************************************************************/
void TimerInt(void) interrupt 5
{
	TF2H = 0;
	g_CurCount++;
	if(g_CurCount >= 300)
	   {
	   	 g_Overflow=1;
	   }
}

/****************************************************************************
* 名	称:RunTimer()
* 功	能:运行一个定时事件
* 入口参数:nTimerID       定时事件的ID号
* 出口参数:0   运行定时事件不成功
			非0 运行定时事件成功
* 说	明:无
****************************************************************************/
void RunTimer()
{
    TMR2RLH = HIBYTE(tmp);
	TMR2RLL = LOBYTE(tmp);
	g_CurCount=0;
	g_Overflow=0;
	TR2 = 1;
}



⌨️ 快捷键说明

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