hv_drv_Timer.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * @file hv_drv_Timer.h
  3. * @brief Header file of hw timer module.
  4. *
  5. * @verbatim
  6. * ==============================================================================
  7. * ##### How to use #####
  8. * ==============================================================================
  9. * (+) Use Hv_Drv_Tmr_Init()
  10. *
  11. * @endverbatim
  12. * @author HiView SoC Software Team
  13. * @version 1.0.0
  14. * @date 2023-06-12
  15. */
  16. #ifndef _HV_DRV_TIMER_H
  17. #define _HV_DRV_TIMER_H
  18. #include "hv_cal_Timer.h"
  19. /** @defgroup
  20. * driver system timer functions
  21. * @{
  22. */
  23. /**@brief init tmr parameters
  24. * @param params pointer to tmr configure parameters
  25. * @return HwTmr structure pointer
  26. */
  27. HwTmr *Hv_Drv_Tmr_Init(HwTmrConfig *pstTmrCfg);
  28. /** @brief stop timer
  29. * @param[in] self HwTmr structure pointer
  30. */
  31. VOID Hv_Drv_Tmr_Stop(HwTmr *pstTmr);
  32. /**@brief Cleanup tmr parameters
  33. * @param self HwTmr structure pointer
  34. */
  35. VOID Hv_Drv_Tmr_Cleanup(HwTmr *pstTmr);
  36. /**@brief set tmr ms counter register values, use before Hv_Drv_Tmr_Start
  37. * @param[in] self HwTmr structure pointer
  38. * @param[in] uiMsCounts count ms time
  39. */
  40. VOID Hv_Drv_Tmr_SetMsCounter(HwTmr *pstTmr, UINT32 uiMsCounts);
  41. /**@brief set system timer ISR handler function
  42. * @param irqNum interrupt Number value
  43. * @param arg pointer to tmr configure parameters
  44. * @return ISR HV_VOS_ISR_RESULT_E result
  45. */
  46. HV_VOS_ISR_RESULT_E Hv_Drv_Tmr_IrqHandler(UINT32 uiIrqNum, VOID *pArg);
  47. /**@brief set system timer interrupt
  48. * @param self HwTmr structure pointer
  49. */
  50. VOID Hv_Drv_Tmr_SetInterrupt(HwTmr *pstTmr);
  51. /**@brief clean system timer interrupt
  52. * @param self HwTmr structure pointer
  53. */
  54. VOID Hv_Drv_Tmr_ClearInterrupt(HwTmr *pstTmr);
  55. /**@brief start system timer
  56. * @param self HwTmr structure pointer
  57. */
  58. VOID Hv_Drv_Tmr_Start(HwTmr *pstTmr);
  59. /**@brief read system timer counter
  60. * @param[in] self HwTmr structure pointer
  61. * @param[out] read counter values
  62. */
  63. UINT32 Hv_Drv_Tmr_ReadCounter(HwTmr *pstTmr);
  64. /** set system timer counter
  65. * @param[in] self HwTmr structure pointer
  66. * @param[in] count count values
  67. */
  68. VOID Hv_Drv_Tmr_SetCounter(HwTmr *pstTmr, UINT32 uiCount);
  69. /** @} */
  70. #endif