57 lines
1.6 KiB
C
57 lines
1.6 KiB
C
#ifndef _DRVRTCI2C_H_
|
|
#define _DRVRTCI2C_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;
|
|
uint8_t second;
|
|
uint8_t minute;
|
|
uint8_t hour;
|
|
uint8_t date;
|
|
uint8_t month;
|
|
uint8_t year;
|
|
uint8_t dayOfWeek;
|
|
} USR_DRV_RTC_I2C_TIME;
|
|
|
|
int8_t DrvRtcI2CInit(uint8_t i2c_id, int32_t i2c_speed);
|
|
int8_t DrvRtcI2CGetTime(USR_DRV_RTC_I2C_TIME *rtc_time);
|
|
int8_t DrvRtcI2CSetTime(USR_DRV_RTC_I2C_TIME *rtc_time);
|
|
int8_t DrvRtcI2CReadSecond(uint8_t *second);
|
|
int8_t DrvRtcI2CReadMinute(uint8_t *minute);
|
|
int8_t DrvRtcI2CReadHour(uint8_t *hour);
|
|
int8_t DrvRtcI2CReadDate(uint8_t *date);
|
|
int8_t DrvRtcI2CReadMonth(uint8_t *month);
|
|
int8_t DrvRtcI2CReadYear(uint8_t *year);
|
|
int8_t DrvRtcI2CSetSecond(uint8_t second);
|
|
int8_t DrvRtcI2CSetMinute(uint8_t minute);
|
|
int8_t DrvRtcI2CSetHour(uint8_t hour);
|
|
int8_t DrvRtcI2CSetDate(uint8_t date);
|
|
int8_t DrvRtcI2CSetMonth(uint8_t mon);
|
|
int8_t DrvRtcI2CSetYear(uint8_t year);
|
|
int8_t DrvRtcI2CTrickCharge_mA(void);
|
|
int8_t DrvRtcI2CTrickCharge_uA(void);
|
|
int8_t DrvRtcI2COutput1hz(void);
|
|
|
|
#endif
|
|
|