74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #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
 | 
