// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // File name : tc_drv.h // Version : V0.1 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifndef __TC_DRV_H__ #define __TC_DRV_H__ #include "memmap.h" #include "tc_reg.h" #define TC ((TC_TypeDef *)TC_BASE_ADDR) typedef enum { TC_WDP_64,//64ms TC_WDP_32,//32ms TC_WDP_16,//16ms TC_WDP_8,//8ms TC_WDP_4,//4ms TC_WDP_2,//2ms TC_WDP_1,//1ms TC_WDP_0_5,//0.5ms }TC_TIMER_PRESCALER; #define IS_TC_TIMER_PRESCALER(PRESCALER) (((PRESCALER) == TC_WDP_64) || \ ((PRESCALER) == TC_WDP_32) || \ ((PRESCALER) == TC_WDP_16) || \ ((PRESCALER) == TC_WDP_8) || \ ((PRESCALER) == TC_WDP_4) || \ ((PRESCALER) == TC_WDP_2) || \ ((PRESCALER) == TC_WDP_1) || \ ((PRESCALER) == TC_WDP_0_5)) /******************************************************************************* * Function Name : TC_Init * Description : TC初始化 * Input : - tc_wdp: TC预分频值 * - Counterval:time起始值 * * Output : None * Return : None ******************************************************************************/ extern void TC_Init(TC_TIMER_PRESCALER tc_wdp, UINT16 Counterval); /******************************************************************************* * Function Name : TC_Close * Description : 关闭TC * Input : None * * Output : None * Return : None ******************************************************************************/ extern void TC_Close(void); /******************************************************************************* * Function Name : TC_FeedWatchDog * Description : TC喂狗,清除TC watchdog,防止tc time out导致系统中断 * Input : None * * Output : None * Return : None ******************************************************************************/ extern void TC_FeedWatchDog(void); /******************************************************************************* * Function Name : TC_GetCount * Description : 获取TC counter值 * Input : None * * Output : Watch-dog counter * Return : None ******************************************************************************/ extern UINT32 TC_GetCount(void); /******************************************************************************* * Function Name : TC_ResetInit * Description : TC reset功能初始化 * Input : -wdp:TC分频系数 * -tcmr:TC计数初始值 * -reset_en:是否产生TC reset * Output : None * Return : None ******************************************************************************/ extern void TC_ResetInit(TC_TIMER_PRESCALER wdp, UINT16 tcmr, BOOL reset_en); /******************************************************************************* * Function Name : TC_IntInit * Description : TC 中断功能初始化 * Input : -wdp:TC分频系数 * -tcmr:TC计数初始值 * -int_en:是否产生TC int * Output : None * Return : None ******************************************************************************/ extern void TC_IntInit(TC_TIMER_PRESCALER wdp, UINT16 tcmr, BOOL int_en); #endif /* __TC_DRV_H__ */