X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/6bda628718f67c04ed43e8328f55bdce5319c504..279e1b6ece7fbc90db6cb642f1c289b45648cf9c:/Projects/TempDataLogger/Lib/DS1307.h diff --git a/Projects/TempDataLogger/Lib/DS1307.h b/Projects/TempDataLogger/Lib/DS1307.h index d07bff439..5181c3e87 100644 --- a/Projects/TempDataLogger/Lib/DS1307.h +++ b/Projects/TempDataLogger/Lib/DS1307.h @@ -1,8 +1,8 @@ /* - Copyright (C) Dean Camera, 2010. - + Copyright (C) Dean Camera, 2011. + dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ #ifndef _DS1307_H_ @@ -16,6 +16,16 @@ /* 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 @@ -24,22 +34,22 @@ unsigned int TenSec : 3; unsigned int CH : 1; } Fields; - + uint8_t IntVal; } Byte1; - + union { struct { unsigned int Min : 4; unsigned int TenMin : 3; - unsigned int _RESERVED : 1; + unsigned int Reserved : 1; } Fields; - + uint8_t IntVal; } Byte2; - + union { struct @@ -47,26 +57,34 @@ unsigned int Hour : 4; unsigned int TenHour : 2; unsigned int TwelveHourMode : 1; - unsigned int _RESERVED : 1; + unsigned int Reserved : 1; } Fields; - + uint8_t IntVal; } Byte3; - } DS1307_TimeRegs_t; - typedef struct - { + union + { + struct + { + unsigned int DayOfWeek : 3; + unsigned int Reserved : 5; + } Fields; + + uint8_t IntVal; + } Byte4; + union { struct { unsigned int Day : 4; unsigned int TenDay : 2; - unsigned int _RESERVED : 2; + unsigned int Reserved : 2; } Fields; - + uint8_t IntVal; - } Byte1; + } Byte5; union { @@ -74,12 +92,12 @@ { unsigned int Month : 4; unsigned int TenMonth : 1; - unsigned int _RESERVED : 3; + unsigned int Reserved : 3; } Fields; - + uint8_t IntVal; - } Byte2; - + } Byte6; + union { struct @@ -87,30 +105,17 @@ unsigned int Year : 4; unsigned int TenYear : 4; } Fields; - + uint8_t IntVal; - } Byte3; - } DS1307_DateRegs_t; + } Byte7; + } DS1307_DateTimeRegs_t; /* 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: */ - 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 +