41static int8_t gs_time_zone = 0;
191 timestamp += (time_t)(gs_time_zone * 3600);
192 timeptr = localtime(×tamp);
194 t.
date = (uint8_t)timeptr->tm_mday;
196 t.
hour = (uint8_t)timeptr->tm_hour;
197 t.
minute = (uint8_t)timeptr->tm_min;
198 t.
month = (uint8_t)timeptr->tm_mon + 1;
199 t.
second = (uint8_t)timeptr->tm_sec;
200 if (timeptr->tm_wday == 0)
206 t.
week = (uint8_t)timeptr->tm_wday;
208 t.
year = (uint16_t)(timeptr->tm_year + 1900);
274 timeptr.tm_year = t.
year - 1900;
275 timeptr.tm_mon = t.
month - 1;
276 timeptr.tm_wday = t.
week;
277 timeptr.tm_mday = t.
date;
280 timeptr.tm_hour = t.
hour;
284 timeptr.tm_hour = t.
hour % 12 + t.
am_pm * 12;
286 timeptr.tm_min = t.
minute;
287 timeptr.tm_sec = t.
second;
290 *timestamp = mktime(&timeptr) - gs_time_zone * 3600;
304 *zone = gs_time_zone;
driver ds3231 output header file
uint8_t ds3231_get_32khz_output(ds3231_handle_t *handle, ds3231_bool_t *enable)
get the 32KHz output status
uint8_t ds3231_set_aging_offset(ds3231_handle_t *handle, int8_t offset)
set the chip aging offset
uint8_t ds3231_get_temperature(ds3231_handle_t *handle, int16_t *raw, float *s)
get the chip temperature
uint8_t ds3231_set_pin(ds3231_handle_t *handle, ds3231_pin_t pin)
set the chip pin function
uint8_t ds3231_aging_offset_convert_to_register(ds3231_handle_t *handle, float offset, int8_t *reg)
convert a aging offset value to a register raw data
uint8_t ds3231_set_32khz_output(ds3231_handle_t *handle, ds3231_bool_t enable)
enable or disable the 32KHz output
uint8_t ds3231_set_square_wave(ds3231_handle_t *handle, ds3231_bool_t enable)
enable or disable the square wave output
uint8_t ds3231_get_square_wave(ds3231_handle_t *handle, ds3231_bool_t *enable)
get the square wave output status
uint8_t ds3231_set_alarm_interrupt(ds3231_handle_t *handle, ds3231_alarm_t alarm, ds3231_bool_t enable)
enable or disable the alarm interrupt
uint8_t ds3231_set_oscillator(ds3231_handle_t *handle, ds3231_bool_t enable)
enable or disable the oscillator
uint8_t ds3231_set_time(ds3231_handle_t *handle, ds3231_time_t *t)
set the current time
struct ds3231_time_s ds3231_time_t
ds3231 time structure definition
struct ds3231_handle_s ds3231_handle_t
ds3231 handle structure definition
uint8_t ds3231_init(ds3231_handle_t *handle)
initialize the chip
uint8_t ds3231_get_time(ds3231_handle_t *handle, ds3231_time_t *t)
get the current time
uint8_t ds3231_deinit(ds3231_handle_t *handle)
close the chip
ds3231_bool_t
ds3231 bool enumeration definition
#define DS3231_OUTPUT_DEFAULT_AGING_OFFSET
ds3231 output example default definition
uint8_t ds3231_output_set_timestamp(time_t timestamp)
output example set the time by a unix timestamp
uint8_t ds3231_output_set_square_wave(ds3231_bool_t enable)
output example enable or disable the square wave
uint8_t ds3231_output_set_32khz_output(ds3231_bool_t enable)
output example enable or disable the 32KHz output
uint8_t ds3231_output_get_timestamp_time_zone(int8_t *zone)
output example get the local time zone
uint8_t ds3231_output_set_time(ds3231_time_t *t)
output example set the time
uint8_t ds3231_output_get_32khz_output(ds3231_bool_t *enable)
output example get the 32KHz output status
uint8_t ds3231_output_get_temperature(int16_t *raw, float *s)
output example get the current temperature
uint8_t ds3231_output_set_timestamp_time_zone(int8_t zone)
output example set the local time zone
uint8_t ds3231_output_get_timestamp(time_t *timestamp)
output example get the time in a unix timestamp
uint8_t ds3231_output_init(void)
output example init
uint8_t ds3231_output_get_ascii_time(char *buf, uint8_t len)
output example get the ascii time
uint8_t ds3231_output_get_time(ds3231_time_t *t)
output example get the time
uint8_t ds3231_output_get_square_wave(ds3231_bool_t *enable)
output example get the square wave status
uint8_t ds3231_output_deinit(void)
output example deinit
uint8_t ds3231_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t ds3231_interface_iic_init(void)
interface iic bus init
uint8_t ds3231_interface_iic_deinit(void)
interface iic bus deinit
void ds3231_interface_delay_ms(uint32_t ms)
interface delay ms
void ds3231_interface_debug_print(const char *const fmt,...)
interface print format data
void ds3231_interface_receive_callback(uint8_t type)
interface receive callback
uint8_t ds3231_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
#define DRIVER_DS3231_LINK_DEBUG_PRINT(HANDLE, FUC)
link debug_print function
#define DRIVER_DS3231_LINK_INIT(HANDLE, STRUCTURE)
initialize ds3231_handle_t structure
#define DRIVER_DS3231_LINK_IIC_INIT(HANDLE, FUC)
link iic_init function
#define DRIVER_DS3231_LINK_RECEIVE_CALLBACK(HANDLE, FUC)
link receive_callback function
#define DRIVER_DS3231_LINK_IIC_WRITE(HANDLE, FUC)
link iic_write function
#define DRIVER_DS3231_LINK_DELAY_MS(HANDLE, FUC)
link delay_ms function
#define DRIVER_DS3231_LINK_IIC_READ(HANDLE, FUC)
link iic_read function
#define DRIVER_DS3231_LINK_IIC_DEINIT(HANDLE, FUC)
link iic_deinit function