123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- #ifndef _DS_3231_H_
- #define _DS_3231_H_
- #include "mbed.h"
- #include "main.h"
- #define DS3231_ADDR 0x68
- typedef union {
- struct {
- uint8_t Value : 7;
- uint8_t : 1;
- };
- uint8_t AS_BYTE;
- } T_SECOND;
- typedef union {
- struct {
- uint8_t Value : 7;
- uint8_t : 1;
- };
- uint8_t AS_BYTE;
- } T_MINUTE;
- typedef union {
- struct {
- uint8_t Value : 5;
- uint8_t nAM : 1;
- uint8_t n24 : 1;
- uint8_t : 1;
- };
- uint8_t AS_BYTE;
- } T_HOUR;
- typedef union {
- struct {
- uint8_t Value : 3;
- uint8_t : 5;
- };
- uint8_t AS_BYTE;
- } T_DAY;
- typedef union {
- struct {
- uint8_t Value : 6;
- uint8_t : 2;
- };
- uint8_t AS_BYTE;
- } T_DATE;
- typedef union {
- struct {
- uint8_t Value : 5;
- uint8_t : 2;
- uint8_t Century : 1;
- };
- uint8_t AS_BYTE;
- } T_MONTH;
- typedef union {
- struct {
- uint8_t Value : 8;
- };
- uint8_t AS_BYTE;
- } T_YEAR;
- typedef union {
- struct {
- uint8_t Value : 7;
- uint8_t M1 : 1;
- };
- uint8_t AS_BYTE;
- } A_SECOND;
- typedef union {
- struct {
- uint8_t Value : 7;
- uint8_t M2 : 1;
- };
- uint8_t AS_BYTE;
- } A_MINUTE;
- typedef union {
- struct {
- uint8_t Value : 5;
- uint8_t nAM : 1;
- uint8_t n24 : 1;
- uint8_t M3 : 1;
- };
- uint8_t AS_BYTE;
- } A_HOUR;
- typedef union {
- struct {
- union {
- struct {
- uint8_t Value : 4;
- uint8_t : 2;
- } Day;
- struct {
- uint8_t Value : 6;
- } Date;
- };
- uint8_t nDT : 1;
- uint8_t M4 : 1;
- };
- uint8_t AS_BYTE;
- } A_DAY_DATE;
- typedef union {
- struct {
- uint8_t A1IE : 1;
- uint8_t A2IE : 1;
- uint8_t INTCN : 1;
- uint8_t RS1 : 1;
- uint8_t RS2 : 1;
- uint8_t CONV : 1;
- uint8_t BBSQW : 1;
- uint8_t nEOSC : 1;
- };
- uint8_t AS_BYTE;
- } CONTROL_1;
- typedef union {
- struct {
- uint8_t A1F : 1;
- uint8_t A2F : 1;
- uint8_t BSY : 1;
- uint8_t EN32KHZ : 1;
- uint8_t : 3;
- uint8_t OSF : 1;
- };
- uint8_t AS_BYTE;
- } CONTROL_2;
- typedef union {
- struct {
- uint8_t Value : 7;
- uint8_t Sign : 1;
- };
- uint8_t AS_BYTE;
- } AGING_OFFSET;
- typedef union {
- struct {
- uint8_t Value : 7;
- uint8_t Sign : 1;
- };
- uint8_t AS_BYTE;
- } TEMP_MSB;
- typedef union {
- struct {
- uint8_t : 6;
- uint8_t Value : 2;
- };
- uint8_t AS_DATA;
- } TEMP_LSB;
- typedef union {
- struct {
- T_SECOND Second; // 0x00
- T_MINUTE Minute; // 0x01
- T_HOUR Hour; // 0x02
- T_DAY Day; // 0x03
- T_DATE Date; // 0x04
- T_MONTH Month; // 0x05
- T_YEAR Year; // 0x06
- A_SECOND A1_Second; // 0x07
- A_MINUTE A1_Minute; // 0x08
- A_HOUR A1_Hour; // 0x09
- A_DAY_DATE A1_Day_Date; // 0x0A
- A_MINUTE A2_Minute; // 0x0B
- A_HOUR A2_Hour; // 0x0C
- A_DAY_DATE A2_Day_Date; // 0x0D
- CONTROL_1 Control_1; // 0x0E
- CONTROL_2 Control_2; // 0x0F
- AGING_OFFSET Aging_Offset; // 0x10
- TEMP_MSB Temp_MSB; // 0x11
- TEMP_LSB Temp_LSB; // 0x12
- };
- } DS3231_REGS;
- void DS3231_Init(void);
- #endif
|