📄 timer.h
字号:
/***********************************************Copyright (c)*********************************************
** Guangzou ZLG-MCU Development Co.,LTD.
**
** http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: Timer.h
** Last modified Date: 2007-10-24
** Last Version: 1.0
** Descriptions: 定时器功能部件 头文件,供用户使用.
**
**--------------------------------------------------------------------------------------------------------
** Created by: WangGuoguang
** Created date: 2007-10-24
** Version: 1.0
** Descriptions: 此头文件可在config.h中包含.
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#ifndef __TIMER_H
#define __TIMER_H
/*********************************************************************************************************
TIMER 软件包裁剪
*********************************************************************************************************/
#define TIMER_FUN_LIB 1
/*********************************************************************************************************
TIMER 定义 (定义更多的编号是为了以后移植扩展)
*********************************************************************************************************/
#define TIME_0 0 /* TIME 0 编号 */
#define TIME_1 1 /* TIME 1 编号 */
#define TIME_2 2 /* TIME 2 编号 */
#define TIME_3 3 /* TIME 3 编号 */
/*********************************************************************************************************
** Function name: timerTimeInit
** Descriptions: 定时器定时功能初始化
** Input parameters: uiID --部件设备号 :0-Time0;1-Time1
** pcArg --字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
** 关键字 :TimeOut:定时时间值,以微秒为单位,输入范围为1us~10000000us
** pRsv --保留指针参数,可输入NULL.
** Output parameters: OPERATE_FAIL -- 操作失败
** Returned value: OPERATE_SUCCESS -- 操作成功
*********************************************************************************************************/
uint32 timerTimeInit (uint32 uiID,
char *pcArg,
void *pRsv);
/*********************************************************************************************************
** Function name: timerStart
** Descriptions: 启动定时器
** Input parameters: uiID --部件设备号 :0-Time0;1-Time1
** pRsv --保留指针参数,可输入NULL.
** Output parameters: OPERATE_FAIL -- 操作失败
** Returned value: OPERATE_SUCCESS -- 操作成功
*********************************************************************************************************/
uint32 timerStart (uint32 uiID, void *pRsv);
/*********************************************************************************************************
** Function name: timerStop
** Descriptions: 停止定时器
** Input parameters: uiID --部件设备号 :0-Time0;1-Time1
** pRsv --保留指针参数,可输入NULL.
** Output parameters: OPERATE_FAIL -- 操作失败
** Returned value: OPERATE_SUCCESS -- 操作成功
*********************************************************************************************************/
uint32 timerStop (uint32 uiID, void *pRsv);
/*********************************************************************************************************
** Function name: timeReset
** Descriptions: 复位定时器
** Input parameters: uiID --部件设备号 :0-Time0;1-Time1
** pRsv --保留指针参数,可输入NULL.
** Output parameters: OPERATE_FAIL -- 操作失败
** Returned value: OPERATE_SUCCESS -- 操作成功
*********************************************************************************************************/
uint32 timeReset (uint32 uiID, void *pRsv);
/*********************************************************************************************************
** Function name: timerMatInit
** Descriptions: 定时器用作匹配功能的初始化
**
** Input parameters: uiID -- 部件设备号。0-Time0;1-Time1
** pcArg -- 字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
** 关键字 T_C :0表示用内部计数器进行匹配,1表示用外部计数进行匹配
** CountN :计数采样通道选择,0~3分别表示通道0(CAPn.0)至通道3(CAPn.3),当T_C等于0时无意义
** CountMode :计数控制模式,0表示CAP输入的上升沿递增计数,
** 1表示CAP输入的下降沿递增计数,
** 2表示CAP输入的上下沿都可以进行计数,当T_C等于0时无意义
** MatN :匹配通道选择,0~3分别表示通道0至通道3
** MatTime :当T_C等于0时表示时间匹配,输入500表示500us时匹配,以微秒为单位,输入范围为1 us~10000000us
** 当T_C等于1时表示计数匹配,输入100表示对外部计数100次时匹配,输入范围为1~1000000000
**
** MatCtrlMode:匹配控制模式,0表示匹配时定时器既不复位也不停止,
** 1表示匹配时定时器复位,
** 2表示匹配时定时器停止工作
** MatInt :中断使能,0表示匹配时不产生中断,1表示匹配时产生中断
** MatOut :匹配时外部引脚输出模式,0表示不执行任何动作,
** 1表示匹配输出低电平,
** 2表示匹配输出高电平,
** 3表示匹配时翻转
** pRsv --保留指针参数,可输入NULL.
** Returned value: OPERATE_FAIL -- 操作失败
** OPERATE_SUCCESS -- 操作成功
** Using example: char pcArg[] = "T_C=0 CountN=0 CountMode=0 MatN=0 MatTime=500 MatCtrlMode=0 MatInt=0 MatOut=3";
** timerMatInit( 0, pcArg, NULL );
** Notice: 设备操作失败的原因是输入不正确的定时器号或输入不正确的参数
** 定时器匹配可通过内部定时或对外部计数进行匹配
** 本API函数的参数是在FPCLK=11059200Hz的频率下设置的
*********************************************************************************************************/
uint32 timerMatInit (uint32 uiID,
char *pcArg,
void *pRsv);
/*********************************************************************************************************
** Function name: timerCapInit
** Descriptions: 定时器捕获功能初始化
**
** Input parameters: uiID -- 部件设备号:0-Time0;1-Time1
** pcArg-- 字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
** 关键字 CapN: 捕获通道选择,0~3分别表示通道0至通道3
** CapMode:捕获控制模式,0表示上升沿捕获,
** 1表示下降沿捕获,
** 2表示上下沿都可以捕获
** CapInt: 中断使能,0表示捕获时不产生中断,1表示捕获时产生中断
** pRsv --保留指针参数,可输入NULL.
** Returned value: OPERATE_FAIL -- 操作失败
** OPERATE_SUCCESS -- 操作成功
** Using example: char pcArg[] = "CapN=2 CapMode=1 CapInt=0";
** timeCapInit( 0, pcArg, NULL );
** Notice: 设备操作失败的原因是输入不正确的定时器号或输入不正确的参数
**********************************************************************************************************/
uint32 timerCapInit (uint32 uiID,
char *pcArg,
void *pRsv);
/*********************************************************************************************************
** Function name: timerGetCap
** Descriptions: 获取选定捕获寄存器值
**
** Input parameters: uiID --部件设备号。0-Time0;1-Time1
** pcArg --字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
** 关键字 :CapGetN :0~3分别表示通道CR0至通道CR3
** pRsv --保留指针参数,可输入NULL.
** Returned value: 操作失败 --OPERATE_FAIL
** 操作成功 --返回所选择的捕获通道数值.
** Using example : char pcArg[] = "CapGetN=0";
** timerGetCap( 0, pcArg, 0 );
** Notice: 设备操作失败的原因是输入不正确的定时器号或参数
*********************************************************************************************************/
uint32 timerGetCap (uint32 uiID,
char *pcArg,
void *pRsv);
/*********************************************************************************************************
** Function name: timerCountInit( )
** Descriptions: 定时器外部计数功能初始化
**
** Input parameters: uiID --部件设备号。0-Time0;1-Time1
** pcArg --字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
** 关键字 :CntN :计数采样通道选择,0~3分别表示通道0(CAPn.0)至通道3(CAPn.3)
** CntMode :计数控制模式, 0表示CAP输入的上升沿递增计数,
** 1表示CAP输入的下降沿递增计数,
** 2表示CAP输入的上下沿都可以进行计数
** pRsv --保留指针参数,可输入NULL.
** Returned value: OPERATE_FAIL -- 操作失败
** OPERATE_SUCCESS -- 操作成功
** Using example : char pcArg[] = "CntN=2 CntMode=1";
** timerCountInit( 0, pcArg, NULL );
** Notice: 设备操作失败的原因是输入不正确的定时器号
*********************************************************************************************************/
uint32 timerCountInit (uint32 uiID,
char *pcArg,
void *pRsv);
/*********************************************************************************************************
** Function name: timerGetCount
** Descriptions: 获取定时器对外部计数值
**
** Input parameters: uiID --部件设备号。0-Time0;1-Time1
** pRsv --保留指针参数,可输入NULL.
** Returned value: OPERATE_FAIL -- 操作失败
** OPERATE_SUCCESS -- 操作成功
** Using example : count = timerGetCount( 0, NULL ); 其中,count为一个uint32整型, 保存timerGetCount返回值
** Notice: 设备操作失败的原因是输入不正确的定时器号或参数
*********************************************************************************************************/
uint32 timerGetCount (uint32 uiID, void *pRsv);
/*********************************************************************************************************
** Function name: timer0ISR
** Descriptions: 库函数默认的中断服务函数,进行timer0中断处理,该函数挂接了钩子函数可处理用户任务.
** Input parameters: NONE
** Output parameters: NONE
** Returned value: NONE
** Notice: 在调用中断服务函数之前,必须先有相关功能设置的初始化操作!
*********************************************************************************************************/
void timer0ISR (void);
/*********************************************************************************************************
** Function name: timer1Irq
** Descriptions: 库函数默认的中断服务函数,进行timer1中断处理,该函数挂接了钩子函数可处理用户任务.
** Input parameters: NONE
** Output parameters: NONE
** Returned value: NONE
** Notice: 在调用中断服务函数之前,必须先有相关功能设置的初始化操作!
*********************************************************************************************************/
void timer1ISR (void);
#endif /* __TIMER_H */
/*********************************************************************************************************
END
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -