diff options
author | That-Canadian <poole.chris.11@gmail.com> | 2017-08-03 10:52:30 -0400 |
---|---|---|
committer | That-Canadian <poole.chris.11@gmail.com> | 2017-08-03 10:52:30 -0400 |
commit | c33434c0d64dd7cbd5f6371c7cb4ac5e05924944 (patch) | |
tree | 59fe34d95089a59fa4e615fd995c81d274147bba /lib/lufa/Projects/TempDataLogger/Lib/RTC.h | |
parent | db5bb7dbbfa2d2eb4f41aa4c768c3c5c8d73f563 (diff) | |
parent | 07ba06d0b6e516bcfa4cbccbed9cfd8dc131072a (diff) | |
download | firmware-c33434c0d64dd7cbd5f6371c7cb4ac5e05924944.tar.gz firmware-c33434c0d64dd7cbd5f6371c7cb4ac5e05924944.tar.bz2 firmware-c33434c0d64dd7cbd5f6371c7cb4ac5e05924944.zip |
Merge branch 'master' into eco-keyboard
Diffstat (limited to 'lib/lufa/Projects/TempDataLogger/Lib/RTC.h')
-rw-r--r-- | lib/lufa/Projects/TempDataLogger/Lib/RTC.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/lib/lufa/Projects/TempDataLogger/Lib/RTC.h b/lib/lufa/Projects/TempDataLogger/Lib/RTC.h new file mode 100644 index 000000000..f35b8ff1e --- /dev/null +++ b/lib/lufa/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 <avr/io.h> + + #include <LUFA/Drivers/Peripheral/TWI.h> + + #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 + |