41static int8_t gs_time_zone = 0;
369 timestamp += (time_t)(gs_time_zone * 3600);
370 timeptr = localtime(×tamp);
372 t.
date = (uint8_t)timeptr->tm_mday;
374 t.
hour = (uint8_t)timeptr->tm_hour;
375 t.
minute = (uint8_t)timeptr->tm_min;
376 t.
month = (uint8_t)timeptr->tm_mon + 1;
377 t.
second = (uint8_t)timeptr->tm_sec;
378 if (timeptr->tm_wday == 0)
384 t.
week = (uint8_t)timeptr->tm_wday;
386 t.
year = (uint16_t)(timeptr->tm_year + 1900);
452 timeptr.tm_year = t.
year - 1900;
453 timeptr.tm_mon = t.
month - 1;
454 timeptr.tm_wday = t.
week;
455 timeptr.tm_mday = t.
date;
458 timeptr.tm_hour = t.
hour;
462 timeptr.tm_hour = t.
hour % 12 + t.
am_pm * 12;
464 timeptr.tm_min = t.
minute;
465 timeptr.tm_sec = t.
second;
468 *timestamp = mktime(&timeptr) - gs_time_zone * 3600;
482 *zone = gs_time_zone;
driver ds3231 alarm header file
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_set_alarm_interrupt(ds3231_handle_t *handle, ds3231_alarm_t alarm, ds3231_bool_t enable)
enable or disable the alarm interrupt
ds3231_alarm2_mode_t
ds3231 alarm2 enumeration definition
uint8_t ds3231_get_alarm1(ds3231_handle_t *handle, ds3231_time_t *t, ds3231_alarm1_mode_t *mode)
get the alarm1 time
ds3231_alarm1_mode_t
ds3231 alarm1 enumeration definition
uint8_t ds3231_set_alarm2(ds3231_handle_t *handle, ds3231_time_t *t, ds3231_alarm2_mode_t mode)
set the alarm2 time
uint8_t ds3231_alarm_clear(ds3231_handle_t *handle, ds3231_alarm_t alarm)
clear the alarm flag
uint8_t ds3231_set_alarm1(ds3231_handle_t *handle, ds3231_time_t *t, ds3231_alarm1_mode_t mode)
set the alarm1 time
uint8_t ds3231_get_alarm2(ds3231_handle_t *handle, ds3231_time_t *t, ds3231_alarm2_mode_t *mode)
get the alarm2 time
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
ds3231_alarm_t
ds3231 alarm enumeration definition
uint8_t ds3231_irq_handler(ds3231_handle_t *handle)
irq handler
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
uint8_t ds3231_alarm_get_time(ds3231_time_t *t)
alarm example get the time
uint8_t ds3231_alarm_set_alarm2(ds3231_time_t *t, ds3231_alarm2_mode_t mode)
alarm example set the alarm 2
uint8_t ds3231_alarm_set_alarm1(ds3231_time_t *t, ds3231_alarm1_mode_t mode)
alarm example set the alarm 1
uint8_t ds3231_alarm_enable(ds3231_alarm_t alarm)
enable the alarm
uint8_t ds3231_alarm_set_timestamp(time_t timestamp)
alarm example set the time by a unix timestamp
uint8_t ds3231_alarm_get_temperature(int16_t *raw, float *s)
alarm example get the current temperature
uint8_t ds3231_alarm_init(void(*alarm_receive_callback)(uint8_t type))
alarm example init
uint8_t ds3231_alarm_disable(ds3231_alarm_t alarm)
disable the alarm
uint8_t ds3231_alarm_clear_flag(ds3231_alarm_t alarm)
alarm clear the interrupt flag
#define DS3231_ALARM_DEFAULT_AGING_OFFSET
ds3231 alarm example default definition
uint8_t ds3231_alarm_set_time(ds3231_time_t *t)
alarm example set the time
uint8_t ds3231_alarm_set_timestamp_time_zone(int8_t zone)
alarm example set the local time zone
uint8_t ds3231_alarm_get_alarm1(ds3231_time_t *t, ds3231_alarm1_mode_t *mode)
alarm example get the alarm 1
uint8_t ds3231_alarm_irq_handler(void)
alarm irq handler
uint8_t ds3231_alarm_get_timestamp(time_t *timestamp)
alarm example get the time in a unix timestamp
uint8_t ds3231_alarm_get_timestamp_time_zone(int8_t *zone)
alarm example get the local time zone
uint8_t ds3231_alarm_get_alarm2(ds3231_time_t *t, ds3231_alarm2_mode_t *mode)
alarm example get the alarm 2
uint8_t ds3231_alarm_alarm_ascii_time(char *buf, uint8_t len)
alarm example get the ascii time
uint8_t ds3231_alarm_deinit(void)
alarm 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
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