You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							122 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							122 lines
						
					
					
						
							1.9 KiB
						
					
					
				| /*
 | |
|      Copyright (C) Dean Camera, 2011.
 | |
| 
 | |
|   dean [at] fourwalledcubicle [dot] com
 | |
|            www.lufa-lib.org
 | |
| */
 | |
| 
 | |
| #ifndef _DS1307_H_
 | |
| #define _DS1307_H_
 | |
| 
 | |
| 	/* Includes: */
 | |
| 		#include <avr/io.h>
 | |
| 
 | |
| 		#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
 | |
| 			{
 | |
| 				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: */
 | |
| 		#define DS1307_ADDRESS       0xD0
 | |
| 
 | |
| 	/* Function Prototypes: */
 | |
| 		bool DS1307_SetTimeDate(const TimeDate_t* NewTimeDate);
 | |
| 		bool DS1307_GetTimeDate(TimeDate_t* const TimeDate);
 | |
| 
 | |
| #endif
 | |
| 
 |