timer.h 1019 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef _TIMER_H
  2. #define _TIMER_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. typedef enum {
  7. TIMER_ID0 = 0,
  8. TIMER_ID1,
  9. TIMER_ID2,
  10. TIMER_ID3,
  11. } eTimerID;
  12. #define TIMER_LOAD_COUNT(x) ((x) * 0x14 + 0x00)
  13. #define TIMER_CURRENT_VAL(x) ((x) * 0x14 + 0x04)
  14. #define TIMER_CTRL(x) ((x) * 0x14 + 0x08)
  15. #define TIMER_EOI(x) ((x) * 0x14 + 0x0c)
  16. #define TIMER_INT_STATUS(x) ((x) * 0x14 + 0x10)
  17. #define TIMER_CTRL_INT_MASK (1ul << 2)
  18. #define TIMER_CTRL_PERIODIC (1ul << 1)
  19. #define TIMER_CTRL_ENABLE (1ul << 0)
  20. void vTimerInit(uint32_t id, int32_t inten, int32_t periodic, uint32_t rate);
  21. void vTimerEnable(uint32_t id);
  22. void vTimerDisable(uint32_t id);
  23. void vTimerClrInt(uint32_t id);
  24. void vInitialiseTimerForRunTimeState(void);
  25. uint32_t ulGetRunTimeCountValue(void);
  26. void vInitialiseTimerForDelay(void);
  27. void vTimerUdelay(uint32_t usec);
  28. void vTimerMdelay(uint32_t msec);
  29. void udelay(uint32_t usec);
  30. void mdelay(uint32_t msec);
  31. uint32_t get_timer(uint32_t base); /* us */
  32. #ifdef __cplusplus
  33. }
  34. #endif
  35. #endif