timer.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef _WONX_SYS_TIMER_H_
  2. #define _WONX_SYS_TIMER_H_
  3. #include "service.h"
  4. enum {
  5. RTC_YEAR = 0,
  6. RTC_MONTH,
  7. RTC_DATE,
  8. RTC_DAY_OF_WEEK,
  9. RTC_HOUR,
  10. RTC_MIN,
  11. RTC_SEC
  12. };
  13. enum timer_type {
  14. TIMER_HBLANK = 0,
  15. TIMER_VBLANK
  16. };
  17. enum timer_preset_type {
  18. TIMER_ONESHOT = 0,
  19. TIMER_AUTOPRESET
  20. };
  21. #define rtc_set_year(year) rtc_set_datetime(RTC_YEAR, year)
  22. #define rtc_set_month(month) rtc_set_datetime(RTC_MONTH, month)
  23. #define rtc_set_date(date) rtc_set_datetime(RTC_DATE, date)
  24. #define rtc_set_day_of_week(week) rtc_set_datetime(RTC_DAY_OF_WEEK, week)
  25. #define rtc_set_hour(hour) rtc_set_datetime(RTC_HOUR, hour)
  26. #define rtc_set_minute(min) rtc_set_datetime(RTC_MIN, min)
  27. #define rtc_set_second(sec) rtc_set_datetime(RTC_SEC, sec)
  28. #define rtc_get_year() rtc_get_datetime(RTC_YEAR)
  29. #define rtc_get_month() rtc_get_datetime(RTC_MONTH)
  30. #define rtc_get_date() rtc_get_datetime(RTC_DATE)
  31. #define rtc_get_day_of_week() rtc_get_datetime(RTC_DAY_OF_WEEK)
  32. #define rtc_get_hour() rtc_get_datetime(RTC_HOUR)
  33. #define rtc_get_minute() rtc_get_datetime(RTC_MIN)
  34. #define rtc_get_second() rtc_get_datetime(RTC_SEC)
  35. void rtc_set_datetime(int type, unsigned int value);
  36. unsigned int rtc_get_datetime(int type);
  37. void rtc_set_datetime_struct(datetime_t * d);
  38. void rtc_get_datetime_struct(datetime_t * d);
  39. void rtc_enable_alarm(int hour, int minute);
  40. void rtc_disable_alarm(void);
  41. void timer_enable(int type, unsigned int auto_preset, unsigned int count);
  42. void timer_disable(int type);
  43. unsigned int timer_get_count(int type);
  44. #endif