Add tag for the 120219 release.
[pub/USBasp.git] / Projects / TempDataLogger / Lib / DS1307.h
index c9fe43c..0736d8e 100644 (file)
@@ -1,8 +1,8 @@
 /*
 /*
-     Copyright (C) Dean Camera, 2010.
-              
+     Copyright (C) Dean Camera, 2012.
+
   dean [at] fourwalledcubicle [dot] com
   dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
+           www.lufa-lib.org
 */
 
 #ifndef _DS1307_H_
 */
 
 #ifndef _DS1307_H_
        /* Type Defines: */
                typedef struct
                {
        /* Type Defines: */
                typedef struct
                {
+                       uint8_t Hour;
+                       uint8_t Minute;
+                       uint8_t Second;
+                       uint8_t Day;
+                       uint8_t Month;
+                       uint8_t Year;
+               } TimeDate_t;
+
+               typedef struct
+               {
                        union
                        {
                                struct
                                {
                        union
                        {
                                struct
                                {
-                                       unsigned int Sec            : 4;
-                                       unsigned int TenSec         : 3;
-                                       unsigned int CH             : 1;
+                                       unsigned Sec            : 4;
+                                       unsigned TenSec         : 3;
+                                       unsigned CH             : 1;
                                } Fields;
                                } Fields;
-                               
+
                                uint8_t IntVal;
                        } Byte1;
                                uint8_t IntVal;
                        } Byte1;
-                       
+
                        union
                        {
                                struct
                                {
                        union
                        {
                                struct
                                {
-                                       unsigned int Min            : 4;
-                                       unsigned int TenMin         : 3;
-                                       unsigned int Reserved       : 1;
+                                       unsigned Min            : 4;
+                                       unsigned TenMin         : 3;
+                                       unsigned Reserved       : 1;
                                } Fields;
                                } Fields;
-                               
+
                                uint8_t IntVal;
                        } Byte2;
                                uint8_t IntVal;
                        } Byte2;
-                       
+
                        union
                        {
                                struct
                                {
                        union
                        {
                                struct
                                {
-                                       unsigned int Hour            : 4;
-                                       unsigned int TenHour         : 2;
-                                       unsigned int TwelveHourMode  : 1;
-                                       unsigned int Reserved        : 1;
+                                       unsigned Hour            : 4;
+                                       unsigned TenHour         : 2;
+                                       unsigned TwelveHourMode  : 1;
+                                       unsigned Reserved        : 1;
                                } Fields;
                                } Fields;
-                               
+
                                uint8_t IntVal;
                        } Byte3;
                                uint8_t IntVal;
                        } Byte3;
-               } DS1307_TimeRegs_t;
 
 
-               typedef struct
-               {
                        union
                        {
                                struct
                                {
                        union
                        {
                                struct
                                {
-                                       unsigned int Day             : 4;
-                                       unsigned int TenDay          : 2;
-                                       unsigned int Reserved        : 2;
+                                       unsigned DayOfWeek       : 3;
+                                       unsigned Reserved        : 5;
                                } Fields;
                                } Fields;
-                       
+
                                uint8_t IntVal;
                                uint8_t IntVal;
-                       } Byte1;
+                       } Byte4;
 
                        union
                        {
                                struct
                                {
 
                        union
                        {
                                struct
                                {
-                                       unsigned int Month           : 4;
-                                       unsigned int TenMonth        : 1;
-                                       unsigned int Reserved        : 3;
+                                       unsigned Day             : 4;
+                                       unsigned TenDay          : 2;
+                                       unsigned Reserved        : 2;
                                } Fields;
                                } Fields;
-                               
+
                                uint8_t IntVal;
                                uint8_t IntVal;
-                       } Byte2;
-                       
+                       } Byte5;
+
                        union
                        {
                                struct
                                {
                        union
                        {
                                struct
                                {
-                                       unsigned int Year            : 4;
-                                       unsigned int TenYear         : 4;
+                                       unsigned Month           : 4;
+                                       unsigned TenMonth        : 1;
+                                       unsigned Reserved        : 3;
                                } Fields;
                                } Fields;
-                               
+
                                uint8_t IntVal;
                                uint8_t IntVal;
-                       } Byte3;
-               } DS1307_DateRegs_t;
+                       } Byte6;
+
+                       union
+                       {
+                               struct
+                               {
+                                       unsigned Year            : 4;
+                                       unsigned TenYear         : 4;
+                               } Fields;
+
+                               uint8_t IntVal;
+                       } Byte7;
+               } DS1307_DateTimeRegs_t;
 
        /* Macros: */
 
        /* Macros: */
-               #define DS1307_TIMEREG_START  0x00
-               #define DS1307_DATEREG_START  0x04
-       
-               #define DS1307_ADDRESS_READ   0b11010001
-               #define DS1307_ADDRESS_WRITE  0b11010000
+               #define DS1307_ADDRESS       0xD0
 
        /* Function Prototypes: */
 
        /* Function Prototypes: */
-               void DS1307_SetDate(const uint8_t Day,
-                                   const uint8_t Month,
-                                   const uint8_t Year);
-               void DS1307_SetTime(const uint8_t Hour,
-                                   const uint8_t Minute,
-                                   const uint8_t Second);
-               void DS1307_GetDate(uint8_t* const Day,
-                                   uint8_t* const Month,
-                                   uint8_t* const Year);
-               void DS1307_GetTime(uint8_t* const Hour,
-                                   uint8_t* const Minute,
-                                   uint8_t* const Second);
+               bool DS1307_SetTimeDate(const TimeDate_t* NewTimeDate);
+               bool DS1307_GetTimeDate(TimeDate_t* const TimeDate);
 
 #endif
 
 #endif
+