RX8025T.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #ifndef __RX8025T_H__
  2. #define __RX8025T_H__
  3. // 时间寄存器定义
  4. #define RTC8025_Second 0 //秒寄存器
  5. #define RTC8025_Minute 1 //分寄存器
  6. #define RTC8025_Hour 2 //时寄存器
  7. #define RTC8025_Week 3 //星期寄存器
  8. #define RTC8025_Day 4 //日寄存器
  9. #define RTC8025_Month 5 //月寄存器
  10. #define RTC8025_Year 6 //年寄存器
  11. #define RTC8025_Test 7 //read&write test
  12. // 控制寄存器定义(时钟芯片型号不相同,相应的配置也是不相同的)
  13. #define RTC8025T_Extension (0x0D) //
  14. #define RX8025T_EXTEN_WADA (0x40)
  15. #define RX8025T_EXTEN_USEL (0x20)
  16. #define RX8025T_EXTEN_TE (0x10)
  17. #define RX8025T_EXTEN_FSEL_32K (0x0c)
  18. #define RX8025T_EXTEN_FSEL_1K (0x04)
  19. #define RX8025T_EXTEN_FSEL_1 (0x08)
  20. #define RX8025T_EXTEN_TSEL_MIN (0x03)
  21. #define RX8025T_EXTEN_TSEL_SEC (0x02)
  22. #define RX8025T_EXTEN_TSEL_64 (0x01)
  23. #define RX8025T_EXTEN_TSEL_4K (0x00)
  24. #define RTC8025T_Flag (0x0E) //
  25. #define RX8025T_FLAG_UF (0x20)
  26. #define RX8025T_FLAG_TF (0x10)
  27. #define RX8025T_FLAG_AF (0x08)
  28. #define RX8025T_FLAG_VLF (0x02)
  29. #define RX8025T_FLAG_VDET (0x01)
  30. #define RTC8025T_Control (0x0F)
  31. #define RX8025T_CTRL_CSEL_0S5 (0x00)
  32. #define RX8025T_CTRL_CSEL_2S0 (0x40)
  33. #define RX8025T_CTRL_CSEL_10S (0x80)
  34. #define RX8025T_CTRL_CSEL_30S (0xC0)
  35. #define RX8025T_CTRL_UIE (0x20)
  36. #define RX8025T_CTRL_TIE (0x10)
  37. #define RX8025T_CTRL_AIE (0x08)
  38. #define RX8025T_CTRL_RST (0x01)
  39. /*
  40. #define RTC8025_PON (0x10) // RTC电源失效标志位
  41. #define RTC8025_XST (0x20) // RTC内部晶振失效标志位
  42. // 工作模式定义
  43. #define RTC8025_Standard_Read (0x00) //标准读模式
  44. #define RTC8025_Simple_Read (0x04) //简单读模式
  45. */
  46. #pragma pack(4)
  47. typedef struct _date_time_
  48. {
  49. uint8_t year;
  50. uint8_t month;
  51. uint8_t day;
  52. uint8_t week;
  53. uint8_t hour;
  54. uint8_t minute;
  55. uint8_t second;
  56. uint8_t pad1;
  57. }STDATETIME;
  58. #pragma pack()
  59. #pragma pack(4)
  60. typedef struct _special_flag_
  61. {
  62. uint32_t I2C8025F;
  63. }SPECIALFLAG;
  64. #pragma pack()
  65. extern STDATETIME stDateTime;
  66. void Get8025( uint8_t addr, uint8_t *data, uint8_t counter);
  67. void Set8025( uint8_t addr, uint8_t *data, uint8_t counter);
  68. void Init8025(void);
  69. void RtcSetDateTime(STDATETIME *pTime);
  70. void RtcSetLocalTime(void);
  71. void UpdateDateTime(void);
  72. uint8_t TestDevice(void);
  73. #endif