40static int8_t gs_time_zone = 0;
151 timestamp += (time_t)(gs_time_zone * 3600);
152 timeptr = localtime(×tamp);
154 t.
date = (uint8_t)timeptr->tm_mday;
156 t.
hour = (uint8_t)timeptr->tm_hour;
157 t.
minute = (uint8_t)timeptr->tm_min;
158 t.
month = (uint8_t)timeptr->tm_mon + 1;
159 t.
second = (uint8_t)timeptr->tm_sec;
160 if (timeptr->tm_wday == 0)
166 t.
week = (uint8_t)timeptr->tm_wday;
168 t.
year = (uint16_t)(timeptr->tm_year + 1900);
230 timeptr.tm_year = t.
year - 1900;
231 timeptr.tm_mon = t.
month - 1;
232 timeptr.tm_wday = t.
week;
233 timeptr.tm_mday = t.
date;
236 timeptr.tm_hour = t.
hour;
240 timeptr.tm_hour = t.
hour % 12 + t.
am_pm * 12;
242 timeptr.tm_min = t.
minute;
243 timeptr.tm_sec = t.
second;
246 *timestamp = mktime(&timeptr) - gs_time_zone * 3600;
260 *zone = gs_time_zone;
driver ds1302 basic header file
uint8_t ds1302_init(ds1302_handle_t *handle)
initialize the chip
uint8_t ds1302_set_write_protect(ds1302_handle_t *handle, ds1302_bool_t enable)
enable or disable write protect
struct ds1302_time_s ds1302_time_t
ds1302 time structure definition
uint8_t ds1302_deinit(ds1302_handle_t *handle)
close the chip
uint8_t ds1302_set_oscillator(ds1302_handle_t *handle, ds1302_bool_t enable)
enable or disable the oscillator
uint8_t ds1302_get_time(ds1302_handle_t *handle, ds1302_time_t *t)
get the current time
uint8_t ds1302_read_ram(ds1302_handle_t *handle, uint8_t addr, uint8_t *buf, uint8_t len)
read ram
struct ds1302_handle_s ds1302_handle_t
ds1302 handle structure definition
uint8_t ds1302_write_ram(ds1302_handle_t *handle, uint8_t addr, uint8_t *buf, uint8_t len)
write ram
uint8_t ds1302_set_time(ds1302_handle_t *handle, ds1302_time_t *t)
set the current time
uint8_t ds1302_basic_set_timestamp(time_t timestamp)
basic example set the time by a unix timestamp
uint8_t ds1302_basic_read_ram(uint8_t addr, uint8_t *buf, uint8_t len)
basic example read ram
uint8_t ds1302_basic_get_ascii_time(char *buf, uint8_t len)
basic example get the ascii time
uint8_t ds1302_basic_get_timestamp(time_t *timestamp)
basic example get the time in a unix timestamp
uint8_t ds1302_basic_set_timestamp_time_zone(int8_t zone)
basic example set the local time zone
uint8_t ds1302_basic_deinit(void)
basic example deinit
uint8_t ds1302_basic_get_timestamp_time_zone(int8_t *zone)
basic example get the local time zone
uint8_t ds1302_basic_get_time(ds1302_time_t *t)
basic example get the time
uint8_t ds1302_basic_set_time(ds1302_time_t *t)
basic example set the time
uint8_t ds1302_basic_init(void)
basic example init
uint8_t ds1302_basic_write_ram(uint8_t addr, uint8_t *buf, uint8_t len)
basic example write ram
uint8_t ds1302_interface_ce_gpio_init(void)
interface ce gpio init
uint8_t ds1302_interface_io_gpio_write(uint8_t value)
interface io gpio write
uint8_t ds1302_interface_sclk_gpio_deinit(void)
interface sclk gpio deinit
uint8_t ds1302_interface_sclk_gpio_write(uint8_t value)
interface sclk gpio write
void ds1302_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t ds1302_interface_io_gpio_read(uint8_t *value)
interface io gpio read
uint8_t ds1302_interface_io_gpio_deinit(void)
interface io gpio deinit
uint8_t ds1302_interface_io_gpio_init(void)
interface io gpio init
void ds1302_interface_delay_us(uint32_t us)
interface delay us
void ds1302_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t ds1302_interface_sclk_gpio_init(void)
interface sclk gpio init
uint8_t ds1302_interface_ce_gpio_deinit(void)
interface ce gpio deinit
uint8_t ds1302_interface_ce_gpio_write(uint8_t value)
interface ce gpio write
#define DRIVER_DS1302_LINK_SCLK_GPIO_WRITE(HANDLE, FUC)
link sclk_gpio_write function
#define DRIVER_DS1302_LINK_CS_GPIO_WRITE(HANDLE, FUC)
link ce_gpio_write function
#define DRIVER_DS1302_LINK_IO_GPIO_DEINIT(HANDLE, FUC)
link io_gpio_deinit function
#define DRIVER_DS1302_LINK_SCLK_GPIO_INIT(HANDLE, FUC)
link sclk_gpio_init function
#define DRIVER_DS1302_LINK_SCLK_GPIO_DEINIT(HANDLE, FUC)
link sclk_gpio_deinit function
#define DRIVER_DS1302_LINK_DELAY_MS(HANDLE, FUC)
link delay_ms function
#define DRIVER_DS1302_LINK_INIT(HANDLE, STRUCTURE)
initialize ds1302_handle_t structure
#define DRIVER_DS1302_LINK_IO_GPIO_INIT(HANDLE, FUC)
link io_gpio_init function
#define DRIVER_DS1302_LINK_CE_GPIO_WRITE(HANDLE, FUC)
link ce_gpio_write function
#define DRIVER_DS1302_LINK_DELAY_US(HANDLE, FUC)
link delay_us function
#define DRIVER_DS1302_LINK_CS_GPIO_READ(HANDLE, FUC)
link ce_gpio_read function
#define DRIVER_DS1302_LINK_CE_GPIO_DEINIT(HANDLE, FUC)
link ce_gpio_deinit function
#define DRIVER_DS1302_LINK_DEBUG_PRINT(HANDLE, FUC)
link debug_print function
#define DRIVER_DS1302_LINK_CE_GPIO_INIT(HANDLE, FUC)
link ce_gpio_init function