📄 timer.h
字号:
/*************************************************************************
* Point RTOS(51) *
* The Real-Time Kernel(For Keil c51) *
* *
* (c) Copyright 2005, PenGH *
* All Rights Reserved *
* *
* Ver 01.0.2 *
* *
* File : TIMER.H *
* Author : 彭光红 *
* History : *
* 2006/04 By PenGH 文件建立 *
*************************************************************************/
/*----------------------------------------------------------------------*/
#ifndef __TIMER_HEAD__
#define __TIMER_HEAD__
#include ".\OS_CFG.H"
#include "..\..\..\8051CPU\OS_CPU.H"
#include "..\..\..\OS\Os_Core.h"
/*************************************************************************
*
* DESCRIPTION : 定义日期时间类型
*
*************************************************************************/
#define OS_DATETIME_EN 0 /* 时间模块是否有效 */
#define OS_DATETIME_FUNCTION_EN 0 /* 时间函数是否有效 */
#define OS_SHORT_TIME_EN 1
#if OS_SHORT_TIME_EN>0
typedef UINT16 TDateTime;
#else
typedef UINT32 TDateTime;
#endif
#ifdef __IN_TIMER_FILE__
#define TIMER_EXT
#else
#define TIMER_EXT extern
TIMER_EXT TDateTime Os_Running_Times;
#endif
/*************************************************************************
*
* DESCRIPTION : 定义系统定时器的中断程序入口号,本系统使用定时器0,如有
* 更改,用户应同时更新此定义
*
*************************************************************************/
#define OS_TIMER_NO 1
/*************************************************************************
*
* DESCRIPTION : 定义定时器的宽度,即是十六定时器还是八位定时器或其它
* 用户应根据应用的具体设定进行修改。
*
*************************************************************************/
#define OS_TIMER_WIDTH 16
/*************************************************************************
*
* DESCRIPTION : 定义系统的每一个指令周期所耗时间,实际就是时钟晶振频率
* 本系统使用的是6M晶振,用户应根据实际的晶振频率进行
* 调整。
*
*************************************************************************/
#define OS_CLOCK_CYCLES 2000
/*************************************************************************
*
* DESCRIPTION : 定义应用中定时器的最小时间分度,根据应用不同,用户可以
* 按要求设定。单位为毫秒。
*
*************************************************************************/
#define OS_TIME_SCALE 100
/*************************************************************************
*
* DESCRIPTION : 定义应用中定时器的的序号,默认为定时器零(瑞保留)
*
*************************************************************************/
#define OS_TIME_ORDER 0
/*************************************************************************
*
* DESCRIPTION : 定义时间常数,此常与上面的定义参数相关联,定义此常数
* 是为了更方便用户进行时间参数设定而不必去修改内核代码。
*
*************************************************************************/
#if OS_TIMER_WIDTH==16
#define OS_TIME_CONST ( 65536-( (OS_TIME_SCALE*1000000)/(OS_CLOCK_CYCLES) ) )
#else
#if OS_TIMER_WIDTH==8
#define OS_TIME_CONST ( 256-( (OS_TIME_SCALE*1000000)/(OS_CLOCK_CYCLES) ) )
#endif
#endif
/*************************************************************************
*
* DESCRIPTION : 系统定时器初始化,如果用户更改些宏,则应同时更改中断号及
* 定时器重装值宏。
*
*************************************************************************/
#define OS_TIMER_INIT() do{\
TMOD = (TMOD & 0XF0) | 0X01;\
TL0=OS_TIME_CONST%256;\
TH0=OS_TIME_CONST/256;\
TR0 = 1;/*定时器启动*/\
ET0 = 1;/*定时器中断打开*/\
TF0 = 0;\
}while(0)
/*************************************************************************
*
* DESCRIPTION : 系统定时器重装值,此宏在定时器中断调用。
* 如果用户使用更改此宏,应同时更改上面的中断号及定时器初始
* 宏,
*
*************************************************************************/
#define OS_TIMER_SET() do{\
TL0=OS_TIME_CONST%256;\
TH0=OS_TIME_CONST/256;\
}while(0)
#endif
/* The end of file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -