Changed TempDataLogger project's DS1307 driver to simplify the function interface and prevent a possible race condition.

This commit is contained in:
Dean Camera 2011-01-13 19:14:38 +00:00
parent 187ccb2e15
commit 7776aa4e2e
6 changed files with 90 additions and 132 deletions

View file

@ -14,6 +14,16 @@
#include <LUFA/Drivers/Peripheral/TWI.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
@ -93,25 +103,12 @@
} DS1307_DateRegs_t;
/* Macros: */
#define DS1307_TIMEREG_START 0x00
#define DS1307_DATEREG_START 0x04
#define DS1307_ADDRESS_READ (0xD0 | TWI_ADDRESS_READ)
#define DS1307_ADDRESS_WRITE (0xD0 | TWI_ADDRESS_WRITE)
/* 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);
void DS1307_SetTimeDate(const TimeDate_t* NewTimeDate);
void DS1307_GetTimeDate(TimeDate_t* const TimeDate);
#endif