57 lines
1.8 KiB
C
57 lines
1.8 KiB
C
|
|
#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
|
|||
|
|
|