/*
- 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_
/* 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
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
} Fields;
uint8_t IntVal;
- } Byte1;
+ } Byte5;
union
{
} Fields;
uint8_t IntVal;
- } Byte2;
+ } Byte6;
union
{
} 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