📄 timer.h
字号:
/******************************************************************************************
* 目的:定时器驱动
* 功能:提供基本的定时器操作接口
* 模块依赖:MCS51 定时器 硬件端口 及 操作方式
******************************************************************************************/
//定时器初始化函数宏定义
#define TIMER0 0
#define TIMER1 1
#define TIMER2 2
typedef void (*pFnTime)( ) ; //定义串口回调函数类型
/*
**-------------------------------------------------------------------------------------
** 初始化定时器中断处理模块 C51timer
**-------------------------------------------------------------------------------------
*/
void Init_Timer();
/*
**-------------------------------------------------------------------------------------
** 初始化定时器使用定时方式1,最小可定时1毫秒
** ims: 硬件中断发生时间间隔 (ms)
** tag_id: 定时器ID (TIMER0~TIMER1)
** 当输入参数tag_id=0xff时定时器0被用做记数,当为记数器时需要用Timestart()开始记数
** 返回值1成功 0则失败
**-------------------------------------------------------------------------------------
*/
unsigned int TimeInit(unsigned char tag_id,unsigned int ims);
/*
**-------------------------------------------------------------------------------------
** 定时器计时开始
** tag_id: 定时器ID (TIMER0~TIMER1)
**-------------------------------------------------------------------------------------
*/
void TimeStart(unsigned char tag_id);
/*
**-------------------------------------------------------------------------------------
** 定时器停止计时
** tag_id: 定时器ID (TIMER0~TIMER1)
**-------------------------------------------------------------------------------------
*/
void TimeStop(unsigned char tag_id);
/*
**-------------------------------------------------------------------------------------
** 判断当前定时记数是否溢出
** tag_id: 定时器ID (0~1)
**-------------------------------------------------------------------------------------
*/
char TimeFout(unsigned char tag_id);
/*
**-------------------------------------------------------------------------------------
** 返回硬件记数状态(TH,TL)
** tag_id: 定时器ID (TIMER0~TIMER1)
**-------------------------------------------------------------------------------------
*/
unsigned int Timecount(unsigned char tag_id);
/*
**-------------------------------------------------------------------------------------
** 系统延时,占用定时器T1
** uiTime_ms: 延时时间 (ms)
**-------------------------------------------------------------------------------------
*/
void delay(unsigned int uiTime_ms);
/*
**-------------------------------------------------------------------------------------
** 改写定时器当前计数值
** tag_id: 定时器ID (TIMER0~TIMER1)
** setms: 将改变的计数值 (ms)
**-------------------------------------------------------------------------------------
*/
void TimeSet(unsigned char tag_id,unsigned long setms);
/*
**-------------------------------------------------------------------------------------
** 比较当前定时器记数值与输入值,当大于等于输入值输出1
** tag_id: 定时器ID (TIMER0~TIMER1)
** breakms: 输入值 (ms)
**-------------------------------------------------------------------------------------
*/
int TimeBreak(unsigned char tag_id,unsigned long breakms);
/*
**-------------------------------------------------------------------------------------
** 创建定时中断
** tag_id: 定时器ID (TIMER0~TIMER1)
** pFn: 回调时间函数指针pFn (中断函数名)
**-------------------------------------------------------------------------------------
*/
unsigned int TimeLoad(unsigned char tag_id,pFnTime pFn);
/*
**-------------------------------------------------------------------------------------
** 消毁第uiTimer个定时中断
** tag_id: 定时器ID (TIMER0~TIMER1)
**-------------------------------------------------------------------------------------
*/
unsigned int TimeDestroy(unsigned char tag_id);
/*
**-------------------------------------------------------------------------------------
** 释放定时器资源
**-------------------------------------------------------------------------------------
*/
void TimeRelease();
//----------------------------------------------------------------- End Of File --------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -