From 60b30c036397cb5627fa374bb930794b225daa29 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 7 Jul 2017 11:55:23 -0400 Subject: Squashed 'lib/lufa/' content from commit 385d40300 git-subtree-dir: lib/lufa git-subtree-split: 385d4030035dbaf41591309dbde47653bd03841b --- Projects/TempDataLogger/Lib/RTC.h | 126 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Projects/TempDataLogger/Lib/RTC.h (limited to 'Projects/TempDataLogger/Lib/RTC.h') diff --git a/Projects/TempDataLogger/Lib/RTC.h b/Projects/TempDataLogger/Lib/RTC.h new file mode 100644 index 0000000000..f35b8ff1ec --- /dev/null +++ b/Projects/TempDataLogger/Lib/RTC.h @@ -0,0 +1,126 @@ +/* + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +#ifndef _RTC_H_ +#define _RTC_H_ + + /* Includes: */ + #include + + #include + + #include "Config/AppConfig.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 + { + unsigned Sec : 4; + unsigned TenSec : 3; + unsigned CH : 1; + } Fields; + + uint8_t IntVal; + } Byte1; + + union + { + struct + { + unsigned Min : 4; + unsigned TenMin : 3; + unsigned Reserved : 1; + } Fields; + + uint8_t IntVal; + } Byte2; + + union + { + struct + { + unsigned Hour : 4; + unsigned TenHour : 2; + unsigned TwelveHourMode : 1; + unsigned Reserved : 1; + } Fields; + + uint8_t IntVal; + } Byte3; + + union + { + struct + { + unsigned DayOfWeek : 3; + unsigned Reserved : 5; + } Fields; + + uint8_t IntVal; + } Byte4; + + union + { + struct + { + unsigned Day : 4; + unsigned TenDay : 2; + unsigned Reserved : 2; + } Fields; + + uint8_t IntVal; + } Byte5; + + union + { + struct + { + unsigned Month : 4; + unsigned TenMonth : 1; + unsigned Reserved : 3; + } Fields; + + uint8_t IntVal; + } Byte6; + + union + { + struct + { + unsigned Year : 4; + unsigned TenYear : 4; + } Fields; + + uint8_t IntVal; + } Byte7; + } DS1307_DateTimeRegs_t; + + /* Macros: */ + /** TWI address of the DS1307 device on the bus. */ + #define DS1307_ADDRESS 0xD0 + + /* Function Prototypes: */ + void RTC_Init(void); + void RTC_Tick500ms(void); + bool RTC_SetTimeDate(const TimeDate_t* NewTimeDate); + bool RTC_GetTimeDate(TimeDate_t* const TimeDate); + +#endif + -- cgit v1.2.3 [cgit] Unable to lock slot /tmp/cgit/46100000.lock: Permission denied (13)