#ifndef __SWM120_TIMR_H__
#define __SWM120_TIMR_H__


typedef struct {
	uint32_t mode;			//0 计数器	1 定时器 
	uint32_t period;		//计数器模式下：计数个数
							//定时器模式下：定时时长，单位为微秒(us)
	uint32_t en_int;		//使能中断
} TIMR_InitStructure;


void TIMR_Init(TIMR_T * TIMRx,TIMR_InitStructure * initStruct);	//TIMR定时器初始化，包括模式选择（定时器、计数器）、定时周期设置、中断使能
void TIMR_Open(TIMR_T * TIMRx);				//TIMR定时器使能，使能是指给TIMR模块提供工作时钟
void TIMR_Close(TIMR_T * TIMRx);			//TIMR定时器禁能，禁能是指切断TIMR模块的时钟供给，从而减小能耗
void TIMR_Start(TIMR_T * TIMRx);			//启动指定TIMR，开始计时/计数
void TIMR_Stop(TIMR_T * TIMRx);				//关闭指定TIMR，停止计时/计数
void TIMR_SetPeriod(TIMR_T * TIMRx,uint32_t period);//设置指定TIMR的计数个数或计时时长（以us为单位）
uint32_t TIMR_GetPeriod(TIMR_T * TIMRx);	//获取指定TIMR的计数个数或计时时长（以us为单位）
uint32_t TIMR_GetCurrent(TIMR_T * TIMRx);	//获取指定TIMR当前计数值（计数器模式）或当前计时值（单位为us，定时器模式）
void TIMR_INTEn(TIMR_T * TIMRx);			//使能指定TIMR的中断
void TIMR_INTDis(TIMR_T * TIMRx);			//禁能指定TIMR的中断
void TIMR_INTClr(TIMR_T * TIMRx);			//清除指定TIMR的中断标志
uint32_t TIMR_INTStat(TIMR_T * TIMRx);		//获取指定TIMR的中断状态


#endif //__SWM120_TIMR_H__
