20240909-DXSPX-emb/RTCGet(可以跑的版本)/Src/Usr/Driver/usr_drv_rtc_i2c.h

57 lines
1.8 KiB
C
Raw Permalink Normal View History

2024-09-11 09:03:46 +00:00
#ifndef _USR_DRV_RTC_I2C_H_
#define _USR_DRV_RTC_I2C_H_
#include <stdbool.h>
#include <stdint.h>
#define USR_DRV_RTC_I2C_ADDRESS 0x68
#define USR_DRV_RTC_I2C_SECOND 0x00
#define USR_DRV_RTC_I2C_MINUTE 0x01
#define USR_DRV_RTC_I2C_HOUR 0x02
#define USR_DRV_RTC_I2C_DAY 0x03
#define USR_DRV_RTC_I2C_DATE 0x04
#define USR_DRV_RTC_I2C_MONTH 0x05
#define USR_DRV_RTC_I2C_YEAR 0x06
#define USR_DRV_RTC_I2C_CAL_CFG1 0x07
#define USR_DRV_RTC_I2C_TCH2 0x08
#define USR_DRV_RTC_I2C_CFG2 0x09
#define USR_DRV_RTC_I2C_SFKEY1 0x20
#define USR_DRV_RTC_I2C_SFKEY2 0x21
#define USR_DRV_RTC_I2C_SFR 0x22
typedef __packed struct
{
uint8_t ms; //<2F><><EFBFBD><EFBFBD>
uint8_t second; //<2F><>
uint8_t minute; //<2F><><EFBFBD><EFBFBD>
uint8_t hour; //Сʱ
uint8_t date; //<2F><>
uint8_t month; //<2F><>
uint8_t year; //<2F><>
uint8_t dayOfWeek; // <20><><EFBFBD>ڼ<EFBFBD>
} USR_DRV_RTC_I2C_TIME;
int8_t usr_drv_rtc_i2c_init(uint8_t i2c_id, int32_t i2c_speed);
int8_t usr_drv_rtc_i2c_get_time(USR_DRV_RTC_I2C_TIME *rtc_time);
int8_t usr_drv_rtc_i2c_set_time(USR_DRV_RTC_I2C_TIME *rtc_time);
int8_t usr_drv_rtc_i2c_read_second(uint8_t *second);
int8_t usr_drv_rtc_i2c_read_minute(uint8_t *minute);
int8_t usr_drv_rtc_i2c_read_hour(uint8_t *hour);
int8_t usr_drv_rtc_i2c_read_date(uint8_t *date);
int8_t usr_drv_rtc_i2c_read_month(uint8_t *month);
int8_t usr_drv_rtc_i2c_read_year(uint8_t *year);
int8_t usr_drv_rtc_i2c_set_second(uint8_t second);
int8_t usr_drv_rtc_i2c_set_minute(uint8_t minute);
int8_t usr_drv_rtc_i2c_set_hour(uint8_t hour);
int8_t usr_drv_rtc_i2c_set_date(uint8_t date);
int8_t usr_drv_rtc_i2c_set_mon(uint8_t mon);
int8_t usr_drv_rtc_i2c_set_year(uint8_t year);
int8_t usr_drv_rtc_i2c_trick_charge_mA(void);
int8_t usr_drv_rtc_i2c_trick_charge_ua(void);
int8_t usr_drv_rtc_i2c_enable_1hz_output(void);
#endif