// 定时器驱动
// 杭州秒寻科技有限公司
// 周涛
// 2023-09-14

#ifndef DRIVERTIMER_H
#define DRIVERTIMER_H

#include "sysdef.h"

typedef void (*TIMER_CALLBACK_FUNC)(void); // 定时器回调函数指针类型

// 延迟发送音频信号定时器
#define DRIVER_TIM_DELAY_SEND_SIGNALNO TIM2
#define DRIVER_TIM_DELAY_SEND_SIGNALCLK RCC_APB1Periph_TIM2
#define DRIVER_TIM_DELAY_SEND_SIGNALIRQn TIM2_IRQn

// 定时器基础时钟
#define DRIVER_TIM_BASE_TIME_NO TIM3
#define DRIVER_TIM_BASE_TIME_CLK RCC_APB1Periph_TIM3
#define DRIVER_TIM_BASE_TIME_IRQn TIM3_IRQn

//// 外部接口
// 2号定时器
void driver_timer_start_timer_delay_send_audio_signal(uint8 byTxFlag, uint8 byDelayTimes, TIMER_CALLBACK_FUNC pvFunc);

// 3号定时器
void driver_timer_timer3_init(); // 时基定时器(给所有模块的定时器提供时基)
void driver_timer_timer3_get_ticks(uint32 *pdwTicks);

#endif
