20240909-DXSPX-emb/LWIP移植(移植+任务(netconn + socket))/Src/Usr/Driver/DrvRtcI2c.h
2024-10-15 13:48:59 +08:00

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