?? timer.h
字號:
/********************************************************************
*Copyright-(c) 2003, *
*All rights reserved. *
* *
* 文件名稱: TIMER.H *
* 摘要 : Headfile of TIMER.C *
* for 80x86 *
* *
* 當前版本: 2.1 *
* 作者 : Liy-tj *
* 完成日期: 2004年3月3日 *
*********************************************************************/
/********************************************************************
全局變量外部引用
*********************************************************************/
#ifdef TMR_GLOBALS
#define TMR_EXT
#else
#define TMR_EXT extern
#endif
/********************************************************************
常量、宏定義
*********************************************************************/
#define TMR_FREE 0xFE //空計時器
#define TMR_EN 0x01 //有計時器
#define TMR_RUN 0x03 //運行
#define TMR_STOP 0xFD //停止
#define TMR_FLG_UP 0x04 //觸發標志位置高
#define TMR_FLG_DOWN 0xFB //觸發標志位置低
#define TMR_MOD 0x30 //工作模式
#define TMR_MOD_CONT 0x00 //連續工作
#define TMR_MOD_ONCE 0x10 //一次工作
#define TMR_MOD_DELAY 0x20 //延遲
#ifndef UNIT_TYP_DEF
#define UNIT_NS 0
#define UNIT_US 1 //定時單位,微秒(缺?。? #define UNIT_MS 2 //定時單位,毫秒
#define UNIT_S 3 //定時單位,秒
#endif
#define TMR_TICK_LENGTH 10000 //定義計時器節拍周期,單位為us
#define MAX_TMR 12 //定義系統需要最多計時器個數
#define TMR_LARG_RANG //計時器計時范圍————大范圍
/**************************模塊功能裁減******************************/
//#define TMR_SET_EN //允許修改定時器
//#define TMR_DELAY_EN //允許延遲函數
#define TMR_DELET_EN //允許刪除計時器
//#define TMR_INTR_FNCT_EN //允許中斷內調用任務函數
//#define TMR_SET_FNCT_EN //允許計時器任務函數可以在運行中修改
//#define TMR_CALL_FNCT_EN //允許直接調用計時器任務函數
#define TMR_RELOAD_EN //允許計時器重載
/********************************************************************
類型定義
*********************************************************************/
typedef INT8U TMR_ID; //計時器ID類型
/********************************************************************
全局變量
*********************************************************************/
//#ifdef TMR_GLOBALS
TMR_EXT INT8U TmrSta[MAX_TMR]; //計時器控制狀態寄存器數組
//bit0 : TMREN 計時器使能位
//bit1 : TMRRUN計時器運行狀態位
//bit2 : TMRFLG計時器觸發標志位
//bit3 : 保留位
//bit4~5: TMRMOD計時器工作模式
//bit6~7: 保留位
#ifdef TMR_LARG_RANG
TMR_EXT INT32U TmrCtr [MAX_TMR]; //計時器計數值數組
TMR_EXT INT32U TmrInit[MAX_TMR]; //計時器初始值數組
#else
TMR_EXT INT16U TmrCtr [MAX_TMR];
TMR_EXT INT16U TmrInit[MAX_TMR];
#endif
#ifdef TMR_INTR_FNCT_EN
//指向在中斷過程中運行的函數的指針數組
TMR_EXT void (*TmrIntFnct[MAX_TMR])(void);
#endif
//指向在中斷過程外運行的函數的指針
TMR_EXT void (*TmrFnct[MAX_TMR])(void);
//#endif
/**********************************************************************
模塊接口函數
***********************************************************************/
#ifdef TMR_LARG_RANG
TMR_ID TMR_Create(INT32U tmrinit, INT8U tmrunit, INT8U tmrmod,
void (*intfnct)(void), void (*fnct)(void));
void TMR_SetLen(INT8U tmrid, INT32U tmrinit, INT8U tmrunit);
void TMR_Set(INT8U tmrid, INT32U tmrinit, INT8U tmrunit, INT8U tmrmod,
void (*intfnct)(void), void (*fnct)(void));
void TMR_LongDelay(INT32U delaylen, INT8U tmrunit, void (*fnct)(void));
INT32U TMR_GetCtr(TMR_ID tmrid);
#else
TMR_ID TMR_Create(INT16U tmrinit, INT8U tmrunit, INT8U tmrmod,
void (*intfnct)(void), void (*fnct)(void));
void TMR_SetLen(INT8U tmrid, INT16U tmrinit, INT8U tmrunit);
void TMR_Set(INT8U tmrid, INT16U tmrinit, INT8U tmrunit, INT8U tmrmod,
void (*intfnct)(void), void (*fnct)(void));
void TMR_LongDelay(INT16U delaylen, INT8U tmrunit, void (*fnct)(void));
INT16U TMR_GetCtr(TMR_ID tmrid);
#endif
INT8U TMR_GetSta(TMR_ID tmrid);
void TMR_Init(void);
void TMR_Start(INT8U tmrid);
void TMR_Stop(INT8U tmrid);
void TMR_Reload(INT8U tmrid);
#ifdef TMR_INTR_FNCT_EN
void TMR_CallIntFnct(INT8U tmrid);
#endif
void TMR_CallFnct(INT8U tmrid);
void TMR_SetFnct(INT8U tmrid, INT8U tmrmod,
void (*intfnct)(void), void (*fnct)(void));
void TMR_Delete(INT8U *ptmrid);
void TMR_IntTask(void);
void TMR_Task(void);
/********************************************************************
宏定義
*********************************************************************/
#define TMR_CreateContMs(tmrinit,intfnct,fnct) TMR_Create((tmrinit),UNIT_MS,TMR_MOD_CONT,(intfnct),(fnct))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -