Add tag for the 120219 release.
[pub/USBasp.git] / Projects / TempDataLogger / Lib / DS1307.h
index 87c6229..0736d8e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
        /* 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
                                {
-                                       unsigned int Sec            : 4;
-                                       unsigned int TenSec         : 3;
-                                       unsigned int CH             : 1;
+                                       unsigned Sec            : 4;
+                                       unsigned TenSec         : 3;
+                                       unsigned CH             : 1;
                                } Fields;
 
                                uint8_t IntVal;
@@ -32,9 +42,9 @@
                        {
                                struct
                                {
-                                       unsigned int Min            : 4;
-                                       unsigned int TenMin         : 3;
-                                       unsigned int Reserved       : 1;
+                                       unsigned Min            : 4;
+                                       unsigned TenMin         : 3;
+                                       unsigned Reserved       : 1;
                                } Fields;
 
                                uint8_t IntVal;
                        {
                                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;
 
                                uint8_t IntVal;
                        } Byte3;
-               } DS1307_TimeRegs_t;
 
-               typedef struct
-               {
                        union
                        {
                                struct
                                {
-                                       unsigned int Day             : 4;
-                                       unsigned int TenDay          : 2;
-                                       unsigned int Reserved        : 2;
+                                       unsigned DayOfWeek       : 3;
+                                       unsigned Reserved        : 5;
                                } Fields;
 
                                uint8_t IntVal;
-                       } Byte1;
+                       } Byte4;
 
                        union
                        {
                                struct
                                {
-                                       unsigned int Month           : 4;
-                                       unsigned int TenMonth        : 1;
-                                       unsigned int Reserved        : 3;
+                                       unsigned Day             : 4;
+                                       unsigned TenDay          : 2;
+                                       unsigned Reserved        : 2;
                                } Fields;
 
                                uint8_t IntVal;
-                       } Byte2;
+                       } Byte5;
 
                        union
                        {
                                struct
                                {
-                                       unsigned int Year            : 4;
-                                       unsigned int TenYear         : 4;
+                                       unsigned Month           : 4;
+                                       unsigned TenMonth        : 1;
+                                       unsigned Reserved        : 3;
                                } Fields;
 
                                uint8_t IntVal;
-                       } Byte3;
-               } DS1307_DateRegs_t;
+                       } Byte6;
 
-       /* Macros: */
-               #define DS1307_TIMEREG_START  0x00
-               #define DS1307_DATEREG_START  0x04
+                       union
+                       {
+                               struct
+                               {
+                                       unsigned Year            : 4;
+                                       unsigned TenYear         : 4;
+                               } Fields;
+
+                               uint8_t IntVal;
+                       } Byte7;
+               } DS1307_DateTimeRegs_t;
 
-               #define DS1307_ADDRESS_READ   0b11010001
-               #define DS1307_ADDRESS_WRITE  0b11010000
+       /* Macros: */
+               #define DS1307_ADDRESS       0xD0
 
        /* 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