📄 timer.h
字号:
/***********************************************Copyright (c)*********************************************
** Guangzou ZLG-MCU Development Co.,LTD.
**
** http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: Timer.c
** Last modified Date: 2007-11-05
** Last Version: 2.0
** Descriptions: 定时器函数实现,采用设备描述符来操作
**
**--------------------------------------------------------------------------------------------------------
** Created by: WangGuoguang
** Created date: 2007-10-31
** Version: 1.0
** Descriptions: 此头文件可在config.h中包含.
**
**--------------------------------------------------------------------------------------------------------
** Modified by: WangGuoguang
** Modified Date: 2007-11-05
** Version: 2.0
** Descriptions: 增加关中断保护设置处理.
**
**--------------------------------------------------------------------------------------------------------
** Modified by: gaolihua
** Modified Date: 2008-04-22
** Version: 3.0
** Descriptions: 增加定时器0、1、2、3的PWM功能函数和定时器2、3的中断服务函数的声明
**
*********************************************************************************************************/
#ifndef __TIMER_H
#define __TIMER_H
/*********************************************************************************************************
TIMER 软件包裁剪
*********************************************************************************************************/
#ifndef TIMER_FUN_LIB
#define TIMER_FUN_LIB 1
#endif
/*********************************************************************************************************
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;2-Time2;3-Time3
** 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: timerPWMInit
** Descriptions: 定时器定时功能初始化
** Input parameters: uiID --部件设备号 :0-Time0;1-Time1;2-Time2;3-Time3
** pcArg --字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
** 关键字 :PWMn:PWM输出通道
关键字 :MATn_Value:PWM匹配寄存器值
关键字 :PR_data:预分频寄存器值
关键字 :PWM_Cyc:定时时间值,以微秒为单位,输入范围为1us~100000000us
** pRsv --保留指针参数,可输入NULL.
** Output parameters: OPERATE_FAIL -- 操作失败
** Returned value: OPERATE_SUCCESS -- 操作成功
**
** Using example : char pcArg[] = "MATn_Value=50 PWM_Cyc=100";
** timerPWMInit( 0, pcArg, NULL ); 表示用定时器0,且周期100us,占空比为50us
** Notice: 设备操作失败的原因是输入不正确的定时器号,PWM采用MR3作为周期控制寄存器,PWMn作为占空比控
制寄存器
** 本API函数的参数是在FPCLK=11059200Hz的频率下设置的
*********************************************************************************************************/
uint32 timerPWMInit (uint32 uiID,
char *pcArg,
void *pRsv);
/*********************************************************************************************************
** Function name: timerStart
** Descriptions: 启动定时器
** Input parameters: uiID --部件设备号 :0-Time0;1-Time1;2-Time2;3-Time3
** 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;2-Time2;3-Time3
** 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;2-Time2;3-Time3
** 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;2-Time2;3-Time3
** 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表示匹配时产生中断
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -