⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.h

📁 Point RTOS单片机实时操作系统 Point RTOS单片机实时操作系统 Point RTOS单片机实时操作系统
💻 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 + -