diff options
| author | Jack Humbert <[email protected]> | 2017-07-07 11:55:23 -0400 | 
|---|---|---|
| committer | Jack Humbert <[email protected]> | 2017-07-07 11:55:23 -0400 | 
| commit | 60b30c036397cb5627fa374bb930794b225daa29 (patch) | |
| tree | e156c2d6b27f01db6985f2cc560c9c345d48fdac /Projects/TempDataLogger/Lib/RTC.h | |
| download | qmk_firmware-60b30c036397cb5627fa374bb930794b225daa29.tar.gz qmk_firmware-60b30c036397cb5627fa374bb930794b225daa29.zip | |
Squashed 'lib/lufa/' content from commit 385d40300
git-subtree-dir: lib/lufa
git-subtree-split: 385d4030035dbaf41591309dbde47653bd03841b
Diffstat (limited to 'Projects/TempDataLogger/Lib/RTC.h')
| -rw-r--r-- | Projects/TempDataLogger/Lib/RTC.h | 126 | 
1 files changed, 126 insertions, 0 deletions
| 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 <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 + | 
