69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.6 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);
							 | 
						|||
| 
								 | 
							
								#endif
							 |