#ifndef TIMER_CFG_H_ #include "base/define.h" #include "stm32f10x_tim.h" typedef void (*Timerupdatefunc)(void ); typedef void (*TimerTriger)(uint8_t ); //停止超时定时器计数 void RunTimeoutStop(void); /* @brief 发送时钟校准波形 @param pre_us 发送的周期 @param count 发送周期的个数 */ void FireBus_ClkAmend(uint16_t pre_us,uint16_t trigger_us,uint16_t count,void *p_fun); /* @brief 超时定时器,单位0.1ms @param ms 最大可设置6553。 @param pfunc 超时回调函数,注意回调函数中不能做长延时任务 */ void RunTimeOut_Timer(uint16_t ms,Timerupdatefunc pfunc ); //获取超时定时器计数值 uint16_t GetRunTimeOutCount(void); /* 延时定时器初始化,单次向上计数 */ void DelayTimer_Init(void); /* 延时定时器初始化,单次向上计数 */ void TimerCount_Init(void); /* @breif 等待定时器计数值大于设定值 @param 等待定时器的结束值,单位0.1ms */ void WaitDelayEnd(uint16_t wait_time); /* @brief 重启延时定时器 */ void StartDelayTime(void); #define GET_COUNTTIM_VAL() (TIM2->CNT) /* @brief 获取当前定时器计数值,单位1us。并重启计数 @rtv 返回上次的计数值 */ uint16_t Get1usCount(void); /* @brief 获取当前定时器计数值,单位10us。并重启计数 @rtv 返回上次的计数值 */ uint16_t Get10usCount(void); /* @brief 获取当前定时器计数值,单位0.1ms。并重启计数 @rtv 返回上次的计数值 */ uint16_t Get100usCount(void); /* @brief 直接获取定时器的值 */ uint16_t GetCountTimerCnt(void); /* 使用轮询的方式检测校准结束 */ void FireBus_ClkAmendCycle(void); // 复位并关闭定时器 void TimerCount_Off(void); #endif