Diff: PCF85063.h
- Revision:
- 1:161eb44e3909
- Parent:
- 0:f539e9fc9e78
- Child:
- 4:a5c06ac163f1
--- a/PCF85063.h Tue Feb 19 19:34:56 2019 +0000
+++ b/PCF85063.h Tue Feb 19 19:43:22 2019 +0000
@@ -0,0 +1,555 @@
+/**
+ * @brief PCF85063.h
+ * @details Tiny Real-Time Clock/calendar.
+ * Header file.
+ *
+ *
+ * @return N/A
+ *
+ * @author Manuel Caballero
+ * @date 19/February/2019
+ * @version 19/February/2019 The ORIGIN
+ * @pre N/A.
+ * @warning N/A
+ * @pre This code belongs to Nimbus Centre ( http://www.nimbus.cit.ie ). All rights reserved.
+ */
+#ifndef PCF85063_H
+#define PCF85063_H
+
+#include "mbed.h"
+
+
+/**
+ Example:
+@code
+
+@endcode
+*/
+
+
+/*!
+ Library for the PCF85063 Tiny Real-Time Clock/calendar.
+*/
+class PCF85063
+{
+public:
+ /**
+ * @brief DEFAULT ADDRESS
+ */
+ typedef enum {
+ PCF85063_ADDRESS = ( 0b1010001 << 1U ) /*!< I2C slave address byte */
+ } PCF85063_address_t;
+
+
+
+ /**
+ * @brief REGISTERS ORGANIZATION
+ */
+ typedef enum {
+ /* CONTROL AND STATUS REGISTERS */
+ PCF85063_CONTROL_1 = 0x00, /*!< Control and status register 1 */
+ PCF85063_CONTROL_2 = 0x01, /*!< Control and status register 2 */
+ PCF85063_OFFSET = 0x02, /*!< Offset register */
+ PCF85063_RAM_BYTE = 0x03, /*!< RAM byte register */
+
+ /* TIME AND DATE REGISTERS */
+ PCF85063_SECONDS = 0x04, /*!< Seconds register */
+ PCF85063_MINUTES = 0x05, /*!< Minutes register */
+ PCF85063_HOURS = 0x06, /*!< Hours register */
+ PCF85063_DAYS = 0x07, /*!< Days register */
+ PCF85063_WEEKDAYS = 0x08, /*!< Weekdays register */
+ PCF85063_MONTHS = 0x09, /*!< Months register */
+ PCF85063_YEARS = 0x0A /*!< Years register */
+ } PCF85063_registers_organization_t;
+
+
+
+ /**
+ * @brief Register Control_1
+ */
+ /* EXT_TEST <7>: EXTERNAL CLOCK TEST MODE
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_1_EXT_TEST_MASK = ( 1U << 7U ), /*!< EXT_TEST mask */
+ CONTROL_1_EXT_TEST_NORMAL_MODE = ( 0U << 7U ), /*!< EXT_TEST: normal mode [ Default ] */
+ CONTROL_1_EXT_TEST_EXTERNAL_CLOCK_TEST_MODE = ( 1U << 7U ) /*!< EXT_TEST: external clock test mode */
+ } PCF85063_control_1_ext_test_t;
+
+
+
+ /* STOP <5>: STOP BIT
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_1_STOP_MASK = ( 1U << 5U ), /*!< STOP mask */
+ CONTROL_1_STOP_RTC_CLOCK_RUNS = ( 0U << 5U ), /*!< STOP: RTC clock runs [ Default ] */
+ CONTROL_1_STOP_RTC_CLOCK_STOPPED = ( 1U << 5U ) /*!< STOP: RTC clock is stopped */
+ } PCF85063_control_1_stop_t;
+
+
+
+ /* SR <4>: SOFTWARE RESET
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_1_SR_MASK = ( 1U << 4U ), /*!< SR mask */
+ CONTROL_1_SR_NO_SOFTWARE_RESET = ( 0U << 4U ), /*!< SR: no software reset [ Default ] */
+ CONTROL_1_SR_SOFTWARE_RESET = ( 1U << 4U ) /*!< SR: initiate software reset */
+ } PCF85063_control_1_sr_t;
+
+
+
+ /* CIE <2>: CORRECTION INTERRUPT ENABLE
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_1_CIE_MASK = ( 1U << 2U ), /*!< CIE mask */
+ CONTROL_1_CIE_NO_CORRECTION_INTERRUPT_GENERATED = ( 0U << 2U ), /*!< CIE: no correction interrupt generated [ Default ] */
+ CONTROL_1_CIE_INTERRUPT_PULSES_GENERATED = ( 1U << 2U ) /*!< CIE: interrupt pulses are generated at every correction cycle */
+ } PCF85063_control_1_cie_t;
+
+
+
+ /* 12_24 <1>: SOFTWARE RESET
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_1_12_24_MASK = ( 1U << 1U ), /*!< 12_24 mask */
+ CONTROL_1_12_24_24_HOUR_MODE = ( 0U << 1U ), /*!< 12_24: 24 hour mode is selected [ Default ] */
+ CONTROL_1_12_24_12_HOUR_MODE = ( 1U << 1U ) /*!< 12_24: 12 hour mode is selected */
+ } PCF85063_control_1_12_24_t;
+
+
+
+ /* CAP_SEL <0>: INTERNAL OSCILLATOR CAPACITOR SELECTION
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_1_CAP_SEL_MASK = ( 1U << 0U ), /*!< CAP_SEL mask */
+ CONTROL_1_CAP_SEL_7_PF = ( 0U << 0U ), /*!< CAP_SEL: 7 pF [ Default ] */
+ CONTROL_1_CAP_SEL_12_5_PF = ( 1U << 0U ) /*!< CAP_SEL: 12.5 pF */
+ } PCF85063_control_1_cap_sel_t;
+
+
+
+ /**
+ * @brief Register Control_2
+ */
+ /* MI <5>: MINUTE INTERRUPT
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_2_MI_MASK = ( 1U << 5U ), /*!< MI mask */
+ CONTROL_2_MI_MINUTE_INTERRUPT_DISABLED = ( 0U << 5U ), /*!< Minute interrupt disabled [ Default ] */
+ CONTROL_2_MI_MINUTE_INTERRUPT_ENABLED = ( 1U << 5U ) /*!< Minute interrupt enabled */
+ } PCF85063_control_2_mi_t;
+
+
+
+ /* HMI <4>: HALF MINUTE INTERRUPT
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_2_HMI_MASK = ( 1U << 4U ), /*!< HMI mask */
+ CONTROL_2_HMI_HALF_MINUTE_INTERRUPT_DISABLED = ( 0U << 4U ), /*!< Half Minute interrupt disabled [ Default ] */
+ CONTROL_2_HMI_HALF_MINUTE_INTERRUPT_ENABLED = ( 1U << 4U ) /*!< Half Minute interrupt enabled */
+ } PCF85063_control_2_hmi_t;
+
+
+
+ /* TF <3>: TIMER FLAG
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_2_TF_MASK = ( 1U << 3U ), /*!< TF mask */
+ CONTROL_2_TF_TIMER_INTERRUPT_NOT_GENERATED = ( 0U << 3U ), /*!< No Timer interrupt generated [ Default ] */
+ CONTROL_2_TF_TIMER_INTERRUPT_GENERATED = ( 1U << 3U ) /*!< Timer interrupt generated */
+ } PCF85063_control_2_tf_t;
+
+
+
+ /* COF <2:0>: CLKOUT CONTROL
+ * NOTE: N/A.
+ */
+ typedef enum {
+ CONTROL_2_COF_MASK = ( 0b111 << 0U ), /*!< COF mask */
+ CONTROL_2_COF_CLKOUT_32768_HZ = ( 0b000 << 0U ), /*!< CLKOUT: 32768 Hz [ Default ] */
+ CONTROL_2_COF_CLKOUT_16384_HZ = ( 0b001 << 0U ), /*!< CLKOUT: 16384 Hz */
+ CONTROL_2_COF_CLKOUT_8192_HZ = ( 0b010 << 0U ), /*!< CLKOUT: 8192 Hz */
+ CONTROL_2_COF_CLKOUT_4096_HZ = ( 0b011 << 0U ), /*!< CLKOUT: 4096 Hz */
+ CONTROL_2_COF_CLKOUT_2048_HZ = ( 0b100 << 0U ), /*!< CLKOUT: 2048 Hz */
+ CONTROL_2_COF_CLKOUT_1024_HZ = ( 0b101 << 0U ), /*!< CLKOUT: 1024 Hz */
+ CONTROL_2_COF_CLKOUT_1_HZ = ( 0b110 << 0U ), /*!< CLKOUT: 1 Hz */
+ CONTROL_2_COF_CLKOUT_LOW = ( 0b111 << 0U ) /*!< CLKOUT: LOW */
+ } PCF85063_control_2_cof_t;
+
+
+
+ /**
+ * @brief Register Offset
+ */
+ /* MODE <7>: OFFSET MODE
+ * NOTE: N/A.
+ */
+ typedef enum {
+ OFFSET_MODE_MASK = ( 1U << 7U ), /*!< MODE mask */
+ OFFSET_MODE_NORMAL_MODE = ( 0U << 7U ), /*!< Normal mode: offset is made once every two hours[ Default ] */
+ OFFSET_MODE_COURSE_MODE = ( 1U << 7U ) /*!< Course mode: offset is made every 4 minutes */
+ } PCF85063_offset_mode_t;
+
+
+
+ /**
+ * @brief Register RAM_byte
+ */
+ /* B <7:0>: RAM CONTENT
+ * NOTE: N/A.
+ */
+ typedef enum {
+ RAM_BYTE_B_MASK = 0xFF /*!< RAM_byte mask */
+ } PCF85063_ram_byte_b_t;
+
+
+
+ /**
+ * @brief Register Seconds
+ */
+ /* OS <7>: OSCILLATOR STOP
+ * NOTE: N/A.
+ */
+ typedef enum {
+ SECONDS_OS_MASK = ( 1U << 7U ), /*!< OS mask */
+ SECONDS_OS_CLOCK_INTEGRITY_IS_GUARANTEED = ( 0U << 7U ), /*!< Clock integrity is guaranteed */
+ SECONDS_OS_CLOCK_INTEGRITY_NOT_GUARANTEED = ( 1U << 7U ) /*!< Clock integrity is not guaranteed, oscillator has stopped or has been interrupted [ Default ] */
+ } PCF85063_seconds_os_t;
+
+
+
+ /* SECONDS, TEN'S PLACE <6:4>: ACTUAL SECONDS, TEN'S PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ SECONDS_SECONDS_TEN_PLACE_MASK = ( 0b111 << 4U ) /*!< SECONDS TEN'S PLACE mask */
+ } PCF85063_seconds_ten_place_t;
+
+
+
+ /* SECONDS, UNIT PLACE <3:0>: ACTUAL SECONDS, UNIT PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ SECONDS_SECONDS_UNIT_PLACE_MASK = ( 0b1111 << 0U ) /*!< SECONDS UNIT PLACE mask */
+ } PCF85063_seconds_unit_place_t;
+
+
+
+ /**
+ * @brief Register Minutes
+ */
+ /* MINUTES, TEN'S PLACE <6:4>: ACTUAL MINUTES, TEN'S PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ MINUTES_MINUTES_TEN_PLACE_MASK = ( 0b111 << 4U ) /*!< MINUTES TEN'S PLACE mask */
+ } PCF85063_minutes_ten_place_t;
+
+
+
+ /* MINUTES, UNIT PLACE <3:0>: ACTUAL MINUTES, UNIT PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ MINUTES_MINUTES_UNIT_PLACE_MASK = ( 0b1111 << 0U ) /*!< MINUTES UNIT PLACE mask */
+ } PCF85063_minutes_unit_place_t;
+
+
+
+ /**
+ * @brief Register HOURS
+ */
+ /* AMPM <5>: AM/PM INDICATOR
+ * NOTE: ONLY FOR 12-HOUR MODE.
+ */
+ typedef enum {
+ HOURS_AMPM_MASK = ( 1U << 5U ), /*!< AMPM mask */
+ HOURS_AMPM_AM = ( 0U << 5U ), /*!< AMPM: AM mode */
+ HOURS_AMPM_PM = ( 1U << 5U ) /*!< AMPM: PM mode */
+ } PCF85063_hours_ampm_t;
+
+
+
+ /* HOURS, TEN'S PLACE <4>: ACTUAL HOURS, TEN'S PLACE
+ * NOTE: ONLY FOR 12-HOUR MODE, CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ HOURS_12_HOUR_MODE_TEN_PLACE_MASK = ( 1U << 4U ) /*!< Hours TEN'S PLACE mask */
+ } PCF85063_12_hour_mode_ten_place_t;
+
+
+
+ /* HOURS, TEN'S PLACE <5:4>: ACTUAL HOURS, TEN'S PLACE
+ * NOTE: ONLY FOR 24-HOUR MODE, CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ HOURS_24_HOUR_MODE_TEN_PLACE_MASK = ( 0b11 << 4U ) /*!< Hours TEN'S PLACE mask */
+ } PCF85063_24_hour_mode_ten_place_t;
+
+
+
+ /* HOURS, UNIT PLACE <3:0>: ACTUAL HOURS, UNIT PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ HOURS_HOURS_UNIT_PLACE_MASK = ( 0b1111 << 0U ) /*!< HOURS UNIT PLACE mask */
+ } PCF85063_hours_unit_place_t;
+
+
+
+ /**
+ * @brief Register Days
+ */
+ /* DAYS, TEN'S PLACE <5:4>: ACTUAL DAYS, TEN'S PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ DAYS_DAYS_TEN_PLACE_MASK = ( 0b11 << 4U ) /*!< DAYS TEN'S PLACE mask */
+ } PCF85063_days_ten_place_t;
+
+
+
+ /* DAYS, UNIT PLACE <3:0>: ACTUAL DAYS, UNIT PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ DAYS_DAYS_UNIT_PLACE_MASK = ( 0b1111 << 0U ) /*!< DAYS UNIT PLACE mask */
+ } PCF85063_days_unit_place_t;
+
+
+
+ /**
+ * @brief Register Weekdays
+ */
+ /* WEEKDAYS <2:0>: ACTUAL WEEKDAY
+ * NOTE: N/A.
+ */
+ typedef enum {
+ WEEKDAYS_WEEKDAYS_MASK = ( 0b111 << 0U ), /*!< WEEKDAYS mask */
+ WEEKDAYS_WEEKDAYS_SUNDAY = ( 0b000 << 0U ), /*!< WEEKDAYS Sunday */
+ WEEKDAYS_WEEKDAYS_MONDAY = ( 0b001 << 0U ), /*!< WEEKDAYS Monday */
+ WEEKDAYS_WEEKDAYS_TUESDAY = ( 0b010 << 0U ), /*!< WEEKDAYS Tuesday */
+ WEEKDAYS_WEEKDAYS_WEDNESDAY = ( 0b011 << 0U ), /*!< WEEKDAYS Wednesday */
+ WEEKDAYS_WEEKDAYS_THURSDAY = ( 0b100 << 0U ), /*!< WEEKDAYS Thursday */
+ WEEKDAYS_WEEKDAYS_FRIDAY = ( 0b101 << 0U ), /*!< WEEKDAYS Friday */
+ WEEKDAYS_WEEKDAYS_SATURDAY = ( 0b111 << 0U ) /*!< WEEKDAYS Saturday [ Default ] */
+ } PCF85063_weekdays_weekdays_t;
+
+
+
+ /**
+ * @brief Register Months
+ */
+ /* MONTHS <4:0>: ACTUAL MONTH
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ MONTHS_MONTHS_MASK = ( 0b11111 << 0U ), /*!< MONTHS mask */
+ MONTHS_MONTHS_JANUARY = ( 0b00001 << 0U ), /*!< MONTHS January [ Default ] */
+ MONTHS_MONTHS_FEBRUARY = ( 0b00010 << 0U ), /*!< MONTHS February */
+ MONTHS_MONTHS_MARCH = ( 0b00011 << 0U ), /*!< MONTHS March */
+ MONTHS_MONTHS_APRIL = ( 0b00100 << 0U ), /*!< MONTHS April */
+ MONTHS_MONTHS_MAY = ( 0b00101 << 0U ), /*!< MONTHS May */
+ MONTHS_MONTHS_JUNE = ( 0b00110 << 0U ), /*!< MONTHS June */
+ MONTHS_MONTHS_JULY = ( 0b00111 << 0U ), /*!< MONTHS July */
+ MONTHS_MONTHS_AUGUST = ( 0b01000 << 0U ), /*!< MONTHS August */
+ MONTHS_MONTHS_SEPTEMBER = ( 0b01001 << 0U ), /*!< MONTHS September */
+ MONTHS_MONTHS_OCTOBER = ( 0b10000 << 0U ), /*!< MONTHS October */
+ MONTHS_MONTHS_NOVEMBER = ( 0b10001 << 0U ), /*!< MONTHS November */
+ MONTHS_MONTHS_DECEMBER = ( 0b10010 << 0U ) /*!< MONTHS December */
+ } PCF85063_months_months_t;
+
+
+
+ /**
+ * @brief Register Years
+ */
+ /* YEARS, TEN'S PLACE <7:4>: ACTUAL YEARS, TEN'S PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ YEARS_YEARS_TEN_PLACE_MASK = ( 0b1111 << 4U ) /*!< YEARS TEN'S PLACE mask */
+ } PCF85063_years_ten_place_t;
+
+
+
+ /* YEARS, UNIT PLACE <3:0>: ACTUAL YEARS, UNIT PLACE
+ * NOTE: CODED IN BCD FORMAT.
+ */
+ typedef enum {
+ YEARS_YEARS_UNIT_PLACE_MASK = ( 0b1111 << 0U ) /*!< YEARS UNIT PLACE mask */
+ } PCF85063_years_unit_place_t;
+
+
+
+
+
+#ifndef PCF85063_VECTOR_STRUCT_H
+#define PCF85063_VECTOR_STRUCT_H
+ typedef struct {
+ PCF85063_control_1_12_24_t Time12H_24HMode; /*!< Time mode: 12-hour or 24-hour mode */
+ PCF85063_hours_ampm_t TimeAM_PM_Mode; /*!< AM/PM mode ( only for 12-hour mode ) */
+
+ uint32_t BCDtime; /*!< Time ( HHMMSS ) in BCD format */
+ uint8_t BCDday; /*!< Day number in BCD format */
+ PCF85063_weekdays_weekdays_t weekday; /*!< Weekday */
+ PCF85063_months_months_t BCDmonth; /*!< Month in BCD format */
+ uint8_t BCDyear; /*!< Year in BCD format */
+
+ int8_t ramByte; /*!< RAM byte */
+ PCF85063_seconds_os_t os; /*!< Oscillator flag */
+ } PCF85063_data_t;
+#endif
+
+
+ /**
+ * @brief INTERNAL CONSTANTS
+ */
+ typedef enum {
+ PCF85063_SUCCESS = 0,
+ PCF85063_FAILURE = 1,
+ I2C_SUCCESS = 0 /*!< I2C communication was fine */
+ } PCF85063_status_t;
+
+
+
+
+ /** Create an PCF85063 object connected to the specified I2C pins.
+ *
+ * @param sda I2C data pin
+ * @param scl I2C clock pin
+ * @param addr I2C slave address
+ * @param freq I2C frequency
+ */
+ PCF85063 ( PinName sda, PinName scl, uint32_t addr, uint32_t freq );
+
+ /** Delete PCF85063 object.
+ */
+ ~PCF85063();
+
+ /** It sets the external clock test mode.
+ */
+ PCF85063_status_t PCF85063_SetTestMode ( PCF85063_control_1_ext_test_t myEXT_TEST );
+
+ /** It sets the RTC clock mode.
+ */
+ PCF85063_status_t PCF85063_SetRTCMode ( PCF85063_control_1_stop_t mySTOP );
+
+ /** It performs a software reset.
+ */
+ PCF85063_status_t PCF85063_SoftwareReset ( void );
+
+ /** It sets the correction interrupt mode.
+ */
+ PCF85063_status_t PCF85063_SetCorrectionInterruptMode ( PCF85063_control_1_cie_t myCIE );
+
+ /** It sets 12 or 24 hour mode.
+ */
+ PCF85063_status_t PCF85063_Set12_24_HourMode ( PCF85063_data_t my12_24 );
+
+ /** It sets the internal oscillator capacitor.
+ */
+ PCF85063_status_t PCF85063_SetInternalOscillatorCapacitor ( PCF85063_control_1_cap_sel_t myCAP_SEL );
+
+ /** It enables/disables minute/half minute interrupt.
+ */
+ PCF85063_status_t PCF85063_SetMinuteInterrupts ( PCF85063_control_2_mi_t myMI, PCF85063_control_2_hmi_t myHMI );
+
+ /** It gets the status of the timer flag.
+ */
+ PCF85063_status_t PCF85063_GetTimerFlag ( PCF85063_control_2_tf_t* myTF );
+
+ /** It resets the status of the timer flag.
+ */
+ PCF85063_status_t PCF85063_ClearTimerFlag ( void );
+
+ /** It sets the clock output frequency.
+ */
+ PCF85063_status_t PCF85063_SetClockOutputFrequency ( PCF85063_control_2_cof_t myCOF );
+
+ /** It sets the offset.
+ */
+ PCF85063_status_t PCF85063_SetOffset ( PCF85063_offset_mode_t myMODE, int8_t myOFFSET );
+
+ /** It writes into the RAM byte register.
+ */
+ PCF85063_status_t PCF85063_WriteByteRAM ( PCF85063_data_t myData );
+
+ /** It reads the RAM byte register.
+ */
+ PCF85063_status_t PCF85063_ReadByteRAM ( PCF85063_data_t* myData );
+
+ /** It checks oscillator clock integrity flag.
+ */
+ PCF85063_status_t PCF85063_CheckOscillatorClockIntegrityFlag ( PCF85063_data_t* myOS );
+
+ /** It clears oscillator clock integrity flag.
+ */
+ PCF85063_status_t PCF85063_ClearOscillatorClockIntegrityFlag ( void );
+
+ /** It sets the AM/PM indicator ( only for 12-hour mode ).
+ */
+ PCF85063_status_t PCF85063_SetAM_PM_Indicator ( PCF85063_data_t myAM_PM_Indicator );
+
+ /** It gets the AM/PM indicator ( only for 12-hour mode ).
+ */
+ PCF85063_status_t PCF85063_GetAM_PM_Indicator ( PCF85063_data_t* myAM_PM_Indicator );
+
+ /** It gets the day ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_GetDay ( PCF85063_data_t* myActualDay );
+
+ /** It sets the day ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_SetDay ( PCF85063_data_t myNewDay );
+
+ /** It gets the weekday.
+ */
+ PCF85063_status_t PCF85063_GetWeekday ( PCF85063_data_t* myActualWeekday );
+
+ /** It sets the weekday.
+ */
+ PCF85063_status_t PCF85063_SetWeekday ( PCF85063_data_t myNewWeekday );
+
+ /** It gets the month ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_GetMonth ( PCF85063_data_t* myActualMonth );
+
+ /** It sets the month ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_SetMonth ( PCF85063_data_t myNewMonth );
+
+ /** It gets the time ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_GetTime ( PCF85063_data_t* myActualTime );
+
+ /** It sets the time ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_SetTime ( PCF85063_data_t myNewTime );
+
+ /** It gets the year ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_GetYear ( PCF85063_data_t* myActualYear );
+
+ /** It sets the year ( BCD format ).
+ */
+ PCF85063_status_t PCF85063_SetYear ( PCF85063_data_t myNewYear );
+
+
+
+
+private:
+ I2C _i2c;
+ uint32_t _PCF85063_Addr;
+};
+
+#endif