1
0

ls1c_timer.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // 硬件定时器头文件
  2. #ifndef __OPENLOONGSON_TIMER_H
  3. #define __OPENLOONGSON_TIMER_H
  4. #include "ls1c_public.h"
  5. // 硬件定时器
  6. typedef enum
  7. {
  8. TIMER_PWM0, // PWM0用作硬件定时器
  9. TIMER_PWM1, // PWM1用作硬件定时器
  10. TIMER_PWM2, // PWM2用作硬件定时器
  11. TIMER_PWM3 // PWM3用作硬件定时器
  12. }ls1c_timer_t;
  13. // 硬件定时器信息
  14. typedef struct
  15. {
  16. ls1c_timer_t timer; // 硬件定时器
  17. unsigned long time_ns; // 定时时间
  18. }timer_info_t;
  19. /*
  20. * 初始化定时器,并开始定时
  21. * @timer_info 定时器和定时时间信息
  22. */
  23. void timer_init(timer_info_t *timer_info);
  24. /*
  25. * 判断指定定时器是否超时
  26. * @timer_info 定时器
  27. * @ret TRUE or FALSE
  28. */
  29. BOOL timer_is_time_out(timer_info_t *timer_info);
  30. /*
  31. * 停止定时器
  32. * @timer_info 定时器
  33. */
  34. void timer_stop(timer_info_t *timer_info);
  35. /*
  36. * 获取定时器从初始化到现在的时间(实现计时功能),单位ns
  37. * @timer_info 硬件定时器
  38. * @ret 时间,单位ns
  39. */
  40. unsigned long timer_get_time_ns(timer_info_t *timer_info);
  41. /*
  42. * 打印timer相关寄存器的值
  43. * @timer_info 硬件定时器
  44. */
  45. void timer_print_regs(timer_info_t *timer_info);
  46. #endif