📄 tim.h
字号:
;** 参 数: timer: 选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;** : prescaler:预分频系数(0~255)
;**
;** 返 回 值: None
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void TIM_PrescalerConfig (TIM_TYPES_T timer, UWORD8 prescaler)
{
TIMx_CR2(timer) = ( TIMx_CR2(timer) & 0xFF00 ) | prescaler;
}
/*********************************************************************************************************
;** 函数名称: TIM_PrescalerValueObtain
;** 功能描述: 获得指定定时器预分频系数值
;**
;** 参 数: timer: 选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;**
;** 返 回 值: 预分频系数(0~255)
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline UWORD8 TIM_PrescalerValueObtain(TIM_TYPES_T timer)
{
return TIMx_CR2(timer) & 0x00FF;
}
/*********************************************************************************************************
;** 函数名称: TIM_ClockLevelConfig
;** 功能描述: 配置指定定时计数器时钟边沿触发类型
;**
;** 参 数: timer:选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;** : edge :计数器时钟边沿触发类型(TIM_RISING,TIM_FALLING)
;**
;** 返 回 值: None
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void TIM_ClockLevelConfig(TIM_TYPES_T timer, TIM_CLOCK_EDGES_T edge)
{
if(edge == TIM_RISING)
TIMx_CR1(timer) |= TIM_EXEDG_MASK;
else
TIMx_CR1(timer) &= ~TIM_EXEDG_MASK;
}
/*********************************************************************************************************
;** 函数名称: TIM_ClockLevelValueObtain
;** 功能描述: 获得指定定时器时钟边沿触发类型
;**
;** 参 数: timer:选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;**
;** 返 回 值: 时钟边沿触发类型(TIM_RISING,TIM_FALLING)
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline TIM_CLOCK_EDGES_T TIM_ClockLevelValueObtain(TIM_TYPES_T timer)
{
return ( TIMx_CR1(timer) & TIM_EXEDG_MASK ) == 0 ? TIM_FALLING : TIM_RISING;
}
/*********************************************************************************************************
;** 函数名称: TIM_ICAPValueObtain
;** 功能描述: 获得指定定时器指定通道输入捕捉寄存器值
;**
;** 参 数: timer: 选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;** channel:通道类型(TIM_CHANNEL_A, TIM_CHANNEL_B)
;**
;** 返 回 值: 指定通道输入捕捉寄存器值
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline UWORD16 TIM_ICAPValueObtain (TIM_TYPES_T timer, TIM_CHANNELS_T channel)
{
return channel == TIM_CHANNEL_A ? TIMx_ICAR(timer) : TIMx_ICBR(timer);
}
/*********************************************************************************************************
;** 函数名称: TIM_ITConfig
;** 功能描述: 配置指定定时计数器中断类型
;**
;** 参 数: timer: 选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;** : new_state:状态控制(ENABLE, DISABLE)
;** : new_it: 中断类型(TIM_ICFA,TIM_OCFA,TIM_TOF,TIM_ICFB,TIM_OCFB)
;**
;** 返 回 值: None
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void TIM_ITConfig(TIM_TYPES_T timer,TIM_FLAGS_T new_it, CONFIG_STATUS_T new_state)
{
if(new_state == ENABLE)
TIMx_CR2(timer) |= new_it;
else
TIMx_CR2(timer) &= ~new_it;
}
/*********************************************************************************************************
;** 函数名称: TIM_StatusObtain
;** 功能描述: 获得指定定时器指定中断类型状态标志值
;**
;** 参 数: timer: 选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;** flag: 中断标志类型
;**
;** 返 回 值: 指定中断类型状态标志值
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline FLAG_STATUS_T TIM_StatusObtain(TIM_TYPES_T timer, TIM_FLAGS_T flag )
{
return (TIMx_SR(timer) & flag) == 0 ? RESET : SET;
}
/*********************************************************************************************************
;** 函数名称: TIM_StatusClear
;** 功能描述: 清除指定定时计数器中断状态标志位
;**
;** 参 数: timer:选择定时器类型(TIMER0, TIMER1, TIMER2, TIMER3)
;** : flag: 指定中断类型状态位
;**
;** 返 回 值: None
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月11日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void TIM_StatusClear(TIM_TYPES_T timer, TIM_FLAGS_T flag )
{
TIMx_SR(timer) &= ~flag;
}
/*********************************************************************************************************
;** 函数名称: TIM_OCMPTimerValueConfig
;** 功能描述: 对指定的定时器设置定时时间值(即设置prescaler的值与比较输出寄存器存储器的值)
;**
;** 参 数: timer: 定时器索引,channel: 定时器比较输出通道,time:需要的时间计数us为单位
;**
;** 返 回 值: 无
;**
;** 作 者: 罗辉联
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void TIM_OCMPTimerValueConfig (TIM_TYPES_T timer,TIM_CHANNELS_T channel,UWORD32 time);
#endif //EN_ARM_TIM > 0
#ifdef __cplusplus
}
#endif
#endif // __TIM_H
/********************************************* end of file **********************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -