j
Fork of ds3231 by
Diff: ds3231.h
- Revision:
- 13:aa3eb69b25bb
- Parent:
- 12:b9f13fd8c1b6
- Child:
- 14:11630748e2f2
--- a/ds3231.h Thu Mar 12 19:36:30 2015 +0000 +++ b/ds3231.h Tue Mar 17 00:34:36 2015 +0000 @@ -78,143 +78,6 @@ #define BSY (1 << 2) #define EN32KHZ (1 << 3) #define OSF (1 << 7) - -/** -* ds3231_regs_t - enumerated DS3231 registers -*/ -typedef enum -{ - SECONDS, - MINUTES, - HOURS, - DAY, - DATE, - MONTH, - YEAR, - ALRM1_SECONDS, - ALRM1_MINUTES, - ALRM1_HOURS, - ALRM1_DAY_DATE, - ALRM2_MINUTES, - ALRM2_HOURS, - ALRM2_DAY_DATE, - CONTROL, - STATUS, - AGING_OFFSET, //don't touch this register - MSB_TEMP, - LSB_TEMP -}ds3231_regs_t; - - -/** -* ds3231_time_t - Struct for containing time data. -* -* Members: -* -* - uint32_t seconds - Use decimal value. Member fx's convert to BCD -* -* - uint32_t minutes - Use decimal value. Member fx's convert to BCD -* -* - uint32_t hours - Use decimal value. Member fx's convert to BCD -* -* - bool am_pm - TRUE for PM, same logic as datasheet -* -* - bool mode - TRUE for 12 hour, same logic as datasheet -*/ -typedef struct -{ - uint32_t seconds; - uint32_t minutes; - uint32_t hours; - bool am_pm; - bool mode; -}ds3231_time_t; - - -/** -* ds3231_calendar_t - Struct for containing calendar data. -* -* Members: -* -* - uint32_t day - Use decimal value. Member fx's convert to BCD -* -* - uint32_t date - Use decimal value. Member fx's convert to BCD -* -* - uint32_t month - Use decimal value. Member fx's convert to BCD -* -* - uint32_t year - Use decimal value. Member fx's convert to BCD -*/ -typedef struct -{ - uint32_t day; - uint32_t date; - uint32_t month; - uint32_t year; -}ds3231_calendar_t; - - -/** -* ds3231_alrm_t - Struct for containing alarm data. -* -* Members: -* -* - uint32_t seconds - Use decimal value. Member fx's convert to BCD -* -* - uint32_t minutes - Use decimal value. Member fx's convert to BCD -* -* - uint32_t hours - Use decimal value. Member fx's convert to BCD -* -* - uint32_t day - Use decimal value. Member fx's convert to BCD -* -* - uint32_t date - Use decimal value. Member fx's convert to BCD -* -* - bool am1 - Flag for setting alarm rate -* -* - bool am2 - Flag for setting alarm rate -* -* - bool am3 - Flag for setting alarm rate -* -* - bool am4 - Flag for setting alarm rate -* -* - bool am_pm - TRUE for PM, same logic as datasheet -* -* - bool mode - TRUE for 12 hour, same logic as datasheet -* -* - bool dy_dt - TRUE for Day, same logic as datasheet -*/ -typedef struct -{ - //Seconds and am1 not used for alarm2 - uint32_t seconds; - uint32_t minutes; - uint32_t hours; - uint32_t day; - uint32_t date; - bool am1; - bool am2; - bool am3; - bool am4; - bool am_pm; - bool mode; - bool dy_dt; -}ds3231_alrm_t; - - -/** -* ds3231_cntl_stat_t - Struct for containing control and status -* register data. -* -* Members: -* -* - uint8_t control - Binary data for read/write of control register -* -* - uint8_t status - Binary data for read/write of status register -*/ -typedef struct -{ - uint8_t control; - uint8_t status; -}ds3231_cntl_stat_t; /******************************************************************//** @@ -250,6 +113,143 @@ uint8_t bcd_2_uchar(uint8_t bcd); public: + + /** + * ds3231_regs_t - enumerated DS3231 registers + */ + typedef enum + { + SECONDS, + MINUTES, + HOURS, + DAY, + DATE, + MONTH, + YEAR, + ALRM1_SECONDS, + ALRM1_MINUTES, + ALRM1_HOURS, + ALRM1_DAY_DATE, + ALRM2_MINUTES, + ALRM2_HOURS, + ALRM2_DAY_DATE, + CONTROL, + STATUS, + AGING_OFFSET, //don't touch this register + MSB_TEMP, + LSB_TEMP + }ds3231_regs_t; + + + /** + * ds3231_time_t - Struct for containing time data. + * + * Members: + * + * - uint32_t seconds - Use decimal value. Member fx's convert to BCD + * + * - uint32_t minutes - Use decimal value. Member fx's convert to BCD + * + * - uint32_t hours - Use decimal value. Member fx's convert to BCD + * + * - bool am_pm - TRUE for PM, same logic as datasheet + * + * - bool mode - TRUE for 12 hour, same logic as datasheet + */ + typedef struct + { + uint32_t seconds; + uint32_t minutes; + uint32_t hours; + bool am_pm; + bool mode; + }ds3231_time_t; + + + /** + * ds3231_calendar_t - Struct for containing calendar data. + * + * Members: + * + * - uint32_t day - Use decimal value. Member fx's convert to BCD + * + * - uint32_t date - Use decimal value. Member fx's convert to BCD + * + * - uint32_t month - Use decimal value. Member fx's convert to BCD + * + * - uint32_t year - Use decimal value. Member fx's convert to BCD + */ + typedef struct + { + uint32_t day; + uint32_t date; + uint32_t month; + uint32_t year; + }ds3231_calendar_t; + + + /** + * ds3231_alrm_t - Struct for containing alarm data. + * + * Members: + * + * - uint32_t seconds - Use decimal value. Member fx's convert to BCD + * + * - uint32_t minutes - Use decimal value. Member fx's convert to BCD + * + * - uint32_t hours - Use decimal value. Member fx's convert to BCD + * + * - uint32_t day - Use decimal value. Member fx's convert to BCD + * + * - uint32_t date - Use decimal value. Member fx's convert to BCD + * + * - bool am1 - Flag for setting alarm rate + * + * - bool am2 - Flag for setting alarm rate + * + * - bool am3 - Flag for setting alarm rate + * + * - bool am4 - Flag for setting alarm rate + * + * - bool am_pm - TRUE for PM, same logic as datasheet + * + * - bool mode - TRUE for 12 hour, same logic as datasheet + * + * - bool dy_dt - TRUE for Day, same logic as datasheet + */ + typedef struct + { + //Seconds and am1 not used for alarm2 + uint32_t seconds; + uint32_t minutes; + uint32_t hours; + uint32_t day; + uint32_t date; + bool am1; + bool am2; + bool am3; + bool am4; + bool am_pm; + bool mode; + bool dy_dt; + }ds3231_alrm_t; + + + /** + * ds3231_cntl_stat_t - Struct for containing control and status + * register data. + * + * Members: + * + * - uint8_t control - Binary data for read/write of control register + * + * - uint8_t status - Binary data for read/write of status register + */ + typedef struct + { + uint8_t control; + uint8_t status; + }ds3231_cntl_stat_t; /**********************************************************//** * Constructor for Ds3231 Class