40static int8_t gs_time_zone = 0;
144 timestamp += (time_t)(gs_time_zone * 3600);
145 timeptr = localtime(×tamp);
147 t.
date = (uint8_t)timeptr->tm_mday;
149 t.
hour = (uint8_t)timeptr->tm_hour;
150 t.
minute = (uint8_t)timeptr->tm_min;
151 t.
month = (uint8_t)timeptr->tm_mon + 1;
152 t.
second = (uint8_t)timeptr->tm_sec;
153 if (timeptr->tm_wday == 0)
159 t.
week = (uint8_t)timeptr->tm_wday;
161 t.
year = (uint16_t)(timeptr->tm_year + 1900);
223 timeptr.tm_year = t.
year - 1900;
224 timeptr.tm_mon = t.
month - 1;
225 timeptr.tm_wday = t.
week;
226 timeptr.tm_mday = t.
date;
229 timeptr.tm_hour = t.
hour;
233 timeptr.tm_hour = t.
hour % 12 + t.
am_pm * 12;
235 timeptr.tm_min = t.
minute;
236 timeptr.tm_sec = t.
second;
239 *timestamp = mktime(&timeptr) - gs_time_zone * 3600;
253 *zone = gs_time_zone;
driver ds1307 basic header file
struct ds1307_handle_s ds1307_handle_t
ds1307 handle structure definition
uint8_t ds1307_read_ram(ds1307_handle_t *handle, uint8_t addr, uint8_t *buf, uint8_t len)
read ram
uint8_t ds1307_set_output_mode(ds1307_handle_t *handle, ds1307_output_mode_t mode)
set the output mode
struct ds1307_time_s ds1307_time_t
ds1307 time structure definition
uint8_t ds1307_set_oscillator(ds1307_handle_t *handle, ds1307_bool_t enable)
enable or disable the oscillator
uint8_t ds1307_init(ds1307_handle_t *handle)
initialize the chip
uint8_t ds1307_set_time(ds1307_handle_t *handle, ds1307_time_t *t)
set the current time
uint8_t ds1307_write_ram(ds1307_handle_t *handle, uint8_t addr, uint8_t *buf, uint8_t len)
write ram
uint8_t ds1307_deinit(ds1307_handle_t *handle)
close the chip
uint8_t ds1307_get_time(ds1307_handle_t *handle, ds1307_time_t *t)
get the current time
@ DS1307_OUTPUT_MODE_LEVEL
uint8_t ds1307_basic_write_ram(uint8_t addr, uint8_t *buf, uint8_t len)
basic example write ram
uint8_t ds1307_basic_set_time(ds1307_time_t *t)
basic example set the time
uint8_t ds1307_basic_init(void)
basic example init
uint8_t ds1307_basic_get_ascii_time(char *buf, uint8_t len)
basic example get the ascii time
uint8_t ds1307_basic_read_ram(uint8_t addr, uint8_t *buf, uint8_t len)
basic example read ram
uint8_t ds1307_basic_get_timestamp(time_t *timestamp)
basic example get the time in a unix timestamp
uint8_t ds1307_basic_deinit(void)
basic example deinit
uint8_t ds1307_basic_set_timestamp_time_zone(int8_t zone)
basic example set the local time zone
uint8_t ds1307_basic_set_timestamp(time_t timestamp)
basic example set the time by a unix timestamp
uint8_t ds1307_basic_get_timestamp_time_zone(int8_t *zone)
basic example get the local time zone
uint8_t ds1307_basic_get_time(ds1307_time_t *t)
basic example get the time
void ds1307_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t ds1307_interface_iic_deinit(void)
interface iic bus deinit
uint8_t ds1307_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t ds1307_interface_iic_init(void)
interface iic bus init
uint8_t ds1307_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
void ds1307_interface_delay_ms(uint32_t ms)
interface delay ms
#define DRIVER_DS1307_LINK_IIC_READ(HANDLE, FUC)
link iic_read function
#define DRIVER_DS1307_LINK_IIC_INIT(HANDLE, FUC)
link iic_init function
#define DRIVER_DS1307_LINK_IIC_DEINIT(HANDLE, FUC)
link iic_deinit function
#define DRIVER_DS1307_LINK_INIT(HANDLE, STRUCTURE)
initialize ds1307_handle_t structure
#define DRIVER_DS1307_LINK_DELAY_MS(HANDLE, FUC)
link delay_ms function
#define DRIVER_DS1307_LINK_DEBUG_PRINT(HANDLE, FUC)
link debug_print function
#define DRIVER_DS1307_LINK_IIC_WRITE(HANDLE, FUC)
link iic_write function