#ifndef __SR_BSP_TIMER_H__
#define __SR_BSP_TIMER_H__


#include "sr_config.h"

#ifdef SR_USE_TIMER

#include "sr_stddef.h"
#include "n32l40x_tim.h"


#define BSP_TIMING_ONECE   TIM_OPMODE_SINGLE  /*!<只执行一次*/ 
#define BSP_TIMING_PERIOD  TIM_OPMODE_REPET   /*!<周期执行*/


/**
 * @brief 朝阳应用使用的TIMER的ID号
 */
typedef enum
{
#ifdef SR_USE_TIMER1
  SR_TIM1,
#endif


  SR_TIM_MX
} SR_TIM_ID_E;


/**
 * @brief TIMER设备信息结构体
 */
typedef struct BSP_TIM_INFO
{
  //const char *name;  /*!< timer设备的名字*/
  //void *trdHandle;   /*!< 第三方平台使用的句柄指针*/
  
  TIM_Module  *instance;  /*!< 国名平台HAL库变量，对应TIM寄存器地址*/
  int8_t srId;       /*!< 朝阳使用的ID*/

} BSP_TIM_INFO_T;



SR_DEVICE_T *BspTimOpen(SR_TIM_ID_E timId);
int BspTimClose(SR_DEVICE_T *dev);
int BspTimConfig(SR_DEVICE_T *dev, SR_TIM_CFG_T *cfg);
int BspTimStart(SR_DEVICE_T *dev);
int BspTimStop(SR_DEVICE_T *dev);
int BspTimGetCnt(SR_DEVICE_T *dev);




#endif //SR_USE_TIMER

#endif






