pcf8563 - Driver for PCF8563 real-time clock/calendar¶
-
group
pcf8563
ESP-IDF driver for PCF8563 real-time clock/calendar.
Copyright (C) 2020 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Defines
-
PCF8563_I2C_ADDR
¶
Enums
-
enum
pcf8563_clkout_freq_t
¶ Frequency output at pin CLKOUT.
Values:
-
enumerator
PCF8563_DISABLED
¶ CLKOUT output is inhibited and set high-impedance.
-
enumerator
PCF8563_32768HZ
¶ 32768 Hz
-
enumerator
PCF8563_1024HZ
¶ 1024 Hz
-
enumerator
PCF8563_32HZ
¶ 32 Hz
-
enumerator
PCF8563_1HZ
¶ 1 Hz
-
enumerator
-
enum
pcf8563_timer_clock_t
¶ Timer clock.
Values:
-
enumerator
PCF8563_TIMER_4096HZ
¶ 4096 Hz
-
enumerator
PCF8563_TIMER_64HZ
¶ 64 Hz
-
enumerator
PCF8563_TIMER_1HZ
¶ 1 Hz
-
enumerator
PCF8563_TIMER_1_60HZ
¶ 1/60 Hz
-
enumerator
-
enum
pcf8563_alarm_flags_t
¶ Flags to setup alarm.
Values:
-
enumerator
PCF8563_ALARM_MATCH_MIN
¶ Alarm when minute matched.
-
enumerator
PCF8563_ALARM_MATCH_HOUR
¶ Alarm when hour matched.
-
enumerator
PCF8563_ALARM_MATCH_DAY
¶ Alarm when day matched.
-
enumerator
PCF8563_ALARM_MATCH_WEEKDAY
¶ Alarm when weekday matched.
-
enumerator
Functions
-
esp_err_t
pcf8563_init_desc
(i2c_dev_t *dev, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)¶ Initialize device descriptor.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptorport
: I2C portsda_gpio
: SDA GPIOscl_gpio
: SCL GPIO
-
esp_err_t
pcf8563_free_desc
(i2c_dev_t *dev)¶ Free device descriptor.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor
-
esp_err_t
pcf8563_set_time
(i2c_dev_t *dev, struct tm *time)¶ Set the time on the RTC.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptortime
: Pointer to time struct
-
esp_err_t
pcf8563_get_time
(i2c_dev_t *dev, struct tm *time, bool *valid)¶ Get the time from the RTC.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor[out] time
: Pointer to time struct[out] valid
: Time validity, false when RTC had power failures
-
esp_err_t
pcf8563_set_clkout
(i2c_dev_t *dev, pcf8563_clkout_freq_t freq)¶ Set output frequency on CLKOUT pin.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptorfreq
: Frequency
-
esp_err_t
pcf8563_get_clkout
(i2c_dev_t *dev, pcf8563_clkout_freq_t *freq)¶ Get current frequency on CLKOUT pin.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor[out] freq
: Frequency
-
esp_err_t
pcf8563_set_timer_settings
(i2c_dev_t *dev, bool int_enable, pcf8563_timer_clock_t clock)¶ Setup timer.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptorint_enable
: true for enable interrupt on timerclock
: Timer frequency
-
esp_err_t
pcf8563_get_timer_settings
(i2c_dev_t *dev, bool *int_enabled, pcf8563_timer_clock_t *clock)¶ Get timer settings.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor[out] int_enabled
: true if timer interrupt is enabled[out] clock
: Timer frequency
-
esp_err_t
pcf8563_set_timer_value
(i2c_dev_t *dev, uint8_t value)¶ Set timer register value.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptorvalue
: Value to set int timer register
-
esp_err_t
pcf8563_get_timer_value
(i2c_dev_t *dev, uint8_t *value)¶ Get timer register value.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor[out] value
: Timer value
-
esp_err_t
pcf8563_start_timer
(i2c_dev_t *dev)¶ Start timer.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor
-
esp_err_t
pcf8563_stop_timer
(i2c_dev_t *dev)¶ Stop timer.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor
-
esp_err_t
pcf8563_get_timer_flag
(i2c_dev_t *dev, bool *timer)¶ Get state of the timer flag.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptortimer
: true when flag is set
-
esp_err_t
pcf8563_clear_timer_flag
(i2c_dev_t *dev)¶ Clear timer flag.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor
-
esp_err_t
pcf8563_set_alarm
(i2c_dev_t *dev, bool int_enable, uint32_t flags, struct tm *time)¶ Setup alarm.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptorint_enable
: true to enable alarm interruptflags
: Alarm types, combination of pcf8563_alarm_flags_t valuestime
: Alarm time. Only tm_min, tm_hour, tm_mday and tm_wday are used
-
esp_err_t
pcf8563_get_alarm
(i2c_dev_t *dev, bool *int_enabled, uint32_t *flags, struct tm *time)¶ Get alarm settings.
- Return
ESP_OK
on success- Parameters
dev
: I2C device descriptor[out] int_enabled
: true if alarm interrupt is enabled[out] flags
: Selected alarm types, combination of pcf8563_alarm_flags_t values[out] time
: Alarm time. Only tm_min, tm_hour, tm_mday and tm_wday are used
-