rtc6 2.0.0.0
rtc6.h File Reference

This file contains API for RTC6 Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"

Go to the source code of this file.

Data Structures

struct  rtc6_time_t
 Click time data object. More...
 
struct  rtc6_t
 Click ctx object definition. More...
 
struct  rtc6_cfg_t
 Click configuration structure definition. More...
 

Macros

#define RTC6_MAP_MIKROBUS(cfg, mikrobus)
 
#define RTC6_REG_SECONDS   0x00
 
#define RTC6_REG_MINUTES   0x01
 
#define RTC6_REG_HOURS   0x02
 
#define RTC6_REG_DAY   0x03
 
#define RTC6_REG_DATE   0x04
 
#define RTC6_REG_MONTH   0x05
 
#define RTC6_REG_YEARS   0x06
 
#define RTC6_REG_CONTROL   0x07
 
#define RTC6_REG_OSC_TRIM   0x08
 
#define RTC6_REG_EEUNLOCK   0x09
 
#define RTC6_REG_ALARM0_SECOND   0x0A
 
#define RTC6_REG_ALARM0_MINUTE   0x0B
 
#define RTC6_REG_ALARM0_HOUR   0x0C
 
#define RTC6_REG_ALARM0_DAY   0x0D
 
#define RTC6_REG_ALARM0_DATE   0x0E
 
#define RTC6_REG_ALARM0_MONTH   0x0F
 
#define RTC6_REG_ALARM1_SECOND   0x11
 
#define RTC6_REG_ALARM1_MINUTE   0x12
 
#define RTC6_REG_ALARM1_HOUR   0x13
 
#define RTC6_REG_ALARM1_DAY   0x14
 
#define RTC6_REG_ALARM1_DATE   0x15
 
#define RTC6_REG_ALARM1_MONTH   0x16
 
#define RTC6_REG_POWER_DOWN_MINUTE   0x18
 
#define RTC6_REG_POWER_DOWN_HOUR   0x19
 
#define RTC6_REG_POWER_DOWN_DATE   0x1A
 
#define RTC6_REG_POWER_DOWN_MONTH   0x1B
 
#define RTC6_REG_POWER_UP_MINUTE   0x1C
 
#define RTC6_REG_POWER_UP_HOUR   0x1D
 
#define RTC6_REG_POWER_UP_DATE   0x1E
 
#define RTC6_REG_POWER_UP_MONTH   0x1F
 
#define RTC6_OSCILLATOR_ENABLE   0x80
 
#define RTC6_OSCILLATOR_DISABLE   0x00
 
#define RTC6_FORMAT_12_HOURS   0x40
 
#define RTC6_FORMAT_24_HOURS   0x00
 
#define RTC6_SWO_1HZ   0x01
 
#define RTC6_SWO_4_096KHZ   0x02
 
#define RTC6_SWO_8_192KHZ   0x03
 
#define RTC6_SWO_32_768KHZ   0x04
 
#define RTC6_MONTH_JANUARY   0x00
 
#define RTC6_MONTH_FEBRUARY   0x01
 
#define RTC6_MONTH_MARCH   0x02
 
#define RTC6_MONTH_APRIL   0x03
 
#define RTC6_MONTH_MAY   0x04
 
#define RTC6_MONTH_JUNE   0x05
 
#define RTC6_MONTH_JULY   0x06
 
#define RTC6_MONTH_AUGUST   0x07
 
#define RTC6_MONTH_SEPTEMBER   0x08
 
#define RTC6_MONTH_OCTOBER   0x09
 
#define RTC6_MONTH_NOVEMBER   0x0A
 
#define RTC6_MONTH_DECEMBER   0x0B
 
#define RTC6_DAY_MONDAY   0x00
 
#define RTC6_DAY_TUESDAY   0x01
 
#define RTC6_DAY_WEDNESDAY   0x02
 
#define RTC6_DAY_THURSDAY   0x03
 
#define RTC6_DAY_FRIDAY   0x04
 
#define RTC6_DAY_SATURDAY   0x05
 
#define RTC6_DAY_SUNDAY   0x06
 
#define RTC6_DEVICE_SLAVE_ADDR   0x6F
 
#define RTC6_SRAM_SLAVE_ADDR   0xDE
 
#define RTC6_EEPROM_SLAVE_ADDR   0x57
 
#define RTC6_ALARM_0   0x00
 
#define RTC6_ALARM_1   0x01
 
#define RTC6_RETVAL   uint8_t
 
#define RTC6_OK   0x00
 
#define RTC6_INIT_ERROR   0xFF
 
#define SET_ERROR   0x02
 
#define DEVICE_ERROR   0x01
 
#define DEVICE_OK   0x00
 
#define RTC6_TIMEDATE_BYTES   0x07
 
#define RTC6_SECONDS_BYTE   0x00
 
#define RTC6_MINUTES_BYTE   0x01
 
#define RTC6_HOUR_BYTE   0x02
 
#define RTC6_DAY_BYTE   0x03
 
#define RTC6_DATE_BYTE   0x04
 
#define RTC6_MONTH_BYTE   0x05
 
#define RTC6_YEAR_BYTE   0x06
 
#define RTC6_RAM_SIZE   64
 
#define RTC6_RAM_START   0x20
 
#define RTC6_RAM_END   0x5f
 
#define RTC6_EEPROM_SIZE   1024
 
#define RTC6_EEPROM_START   0
 
#define RTC6_EEPROM_END   1024
 
#define RTC6_EEPROM_PAGE_SIZE   8
 
#define RTC6_EEPROM_STATUS   0xFF
 
#define TIME_SEC_IN_MIN   60
 
#define TIME_SEC_IN_HOUR   3600
 
#define TIME_SEC_IN_DAY   86400
 
#define TIME_SEC_IN_MONTH   2629743
 
#define TIME_SEC_IN_YEAR_365   31536000
 
#define TIME_SEC_IN_LEAP_YEAR   31622400
 
#define TIME_SEC_IN_YEAR_365_25   31557600
 

Functions

void rtc6_cfg_setup (rtc6_cfg_t *cfg)
 Config Object Initialization function.
 
RTC6_RETVAL rtc6_init (rtc6_t *ctx, rtc6_cfg_t *cfg)
 Initialization function.
 
void rtc6_default_cfg (rtc6_t *ctx, int8_t time_zone, rtc6_time_t *utc_time, rtc6_time_t *alarm_time)
 Click Default Configuration function.
 
void rtc6_generic_write (rtc6_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function.
 
void rtc6_generic_read (rtc6_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function.
 
uint8_t rtc6_init_fun (rtc6_t *ctx, int8_t time_zone)
 
void rtc6_enable_swo (rtc6_t *ctx, uint8_t swo)
 Enable Square Wave Output.
 
void rtc6_disable_swo (rtc6_t *ctx)
 Disables Square Wave Output.
 
void rtc6_battery_enable (rtc6_t *ctx)
 Enables automatic switch to battery.
 
void rtc6_get_gmt_time (rtc6_t *ctx, rtc6_time_t *gmt_time)
 Gets the current GMT time set in the RTC.
 
void rtc6_set_gmt_time (rtc6_t *ctx, rtc6_time_t *set_time)
 Sets the UTC GMT time.
 
void rtc6_get_local_time (rtc6_t *ctx, rtc6_time_t *local_time)
 Calculates the current local time.
 
uint32_t rtc6_get_gmt_unix_time (rtc6_t *ctx)
 Calculates the current GMT time in UNIX epoch time.
 
uint32_t rtc6_get_local_unix_time (rtc6_t *ctx)
 Calculates the current local time in UNIX epoch time.
 
uint8_t rtc6_is_leap_year (rtc6_t *ctx)
 Checks if the current year is a leap one.
 
uint8_t rtc6_is_power_failure (rtc6_t *ctx)
 Checks if a power failure has occured.
 
void rtc6_get_last_power_failure (rtc6_t *ctx, rtc6_time_t *last_time)
 Gets the time of the last power failure.
 
void rtc6_set_alarm (rtc6_t *ctx, uint8_t alarm, uint8_t trigger, rtc6_time_t *time)
 Sets the desired alarm.
 
void rtc6_disable_alarm (rtc6_t *ctx, uint8_t alarm)
 Disables the alarm.
 
void rtc6_read_alarm (rtc6_t *ctx, uint8_t alarm, rtc6_time_t *get_alarm)
 Reads the alarm time.
 
uint8_t rtc6_is_active_alarm (rtc6_t *ctx)
 Check if the alarm is activated.
 
void rtc6_repeat_alarm (rtc6_t *ctx, uint8_t alarm, uint32_t sec)
 Repeat Alarm.
 
void rtc6_write_sram (rtc6_t *ctx, uint8_t addr, uint8_t data_in)
 Writes data to the SRAM.
 
uint8_t rtc6_read_sram (rtc6_t *ctx, uint8_t addr)
 Reads data from an SRAM.
 
void rtc6_write_eeprom_protect_on (rtc6_t *ctx)
 Write protect on.
 
void rtc6_write_eeprom_protect_off (rtc6_t *ctx)
 Write protect off.
 
uint8_t rtc6_eeprom_is_locked (rtc6_t *ctx)
 Lock check function.
 
void rtc6_write_eeprom (rtc6_t *ctx, uint8_t addr, uint8_t *data_in, uint8_t data_size)
 Writes data to EEPROM.
 
void rtc6_read_eeprom (rtc6_t *ctx, uint8_t addr, uint8_t *data_out, uint8_t data_size)
 Reads data from EEPROM.
 
void rtc6_read_unique_id (rtc6_t *ctx, uint8_t *unique_id)
 Reads unique ID.
 

Detailed Description

This file contains API for RTC6 Click driver.