www.pudn.com > 061121_940NoOS_R2025.rar > RTC.h


#include "types_io.h" 
#include "i2c.h" 
 
#ifndef _RTC_H 
#define _RTC_H 
 
//#define TO_DEBUG_CUR_TIME				/* print time and date to terminal */ 
 
	/************************************************** 
	*                                                 * 
	*          RTC2025 Control Address                * 
	*                                                 *	 
	**************************************************/ 
	#define RTC2025_IIC_ADDRESS_W		0x64 
	#define RTC2025_IIC_ADDRESS_R		0x65 
 
 
	#define INTERNAL_POINTER_ADDRESS 	0xE0 
	 
	#define READ_CUR_TIME_ADDRESS		0x00 
	 
	#define READ_CUR_DATE_ADDRESS		0x40 
	 
	#define WIRTE_TIME_ADDRESS			0x00 
	#define WIRTE_DATE_ADDRESS			0x40 
	 
	/*Control Register1: ADDRESS 0x0E */ 
	/* WLAE DALE /12.24 /CLEN2 TEST CT2 CT1 CT0*/ 
	 
	#define RTC_CONTROL_REG1_ADDRESS			0x0E 
	#define INIT_RTC_CONTROL_REG1				0x20 
	 
	/*Control Register2: ADDRESS 0x0F */ 
	/*VDSL VDET /XST PON /CLEN1 CTFG WAFG DAFG*/ 
	#define RTC_CONTROL_REG2_ADDRESS			0x0F 
	#define INIT_RTC_CONTROL_REG2				0x00 
	 
	/*Time Counter Register(BCD format)*/ 
	#define RTC_SECOND_COUNTER_ADDRESS			0x00 
	#define RTC_MINUTE_COUNTER_ADDRESS			0x01 
	#define RTC_HOUR_COUNTER_ADDRESS			0x02 
	 
	#define RTC_DAY_OF_WEEK_ADDRESS				0x03 
	 
	#define RTC_DAY_OF_MONTH_ADDRESS			0x04 
	#define RTC_MONTH_CENTURY_ADDRESS			0x05 
	#define RTC_YEAR_ADDRESS					0x06 
 
	void GetSysTime(void); 
	void SetSysTime(UINT hours,UINT minutes,UINT seconds); 
	void GetSysDate(void); 
	void SetSysDate(UINT years,UINT months,UINT days); 
	 
	#ifdef TO_DEBUG_CUR_TIME 
		void PrintCurTime(void); 
		void PrintCurDate(void); 
	#endif 
	 
	void ReadR2025(void); 
	BYTE BCDToDec(BYTE bcd_number); 
#endif