#ifndef _rtc_h
#define _rtc_h
//#include "stm32f10x.h"

#include "delay.h"

typedef struct 
{
	//公历日月年周
	vu16 w_year;
	vu8  w_month;
	vu8  w_date;
	vu8 hour;
	vu8 min;
	vu8 sec;				
	vu8  week;		 
}_calendar_obj;					 
extern _calendar_obj calendar;	//日历结构体

typedef struct DS1302DATA  
{  
	u8 year;    //年  
	u8 month;   //月  
	u8 day;     //日  
	u8 hour;    //时  
	u8 min;     //分  
	u8 sec;     //秒  
	u8 week;    //周  
}DS1302DATA;
extern struct DS1302DATA gRtcTime;

extern u8 RTC_One_Sec_Update;

#define 		DS1302_RST      				PCout(3)  
#define 		DS1302_CLK      				PCout(1)  
#define 		DS1302_DATIN    				PCin(2)  
#define 		DS1302_DATOUT   				PCout(2) 

#define 		DS1302_DAT_INPUT()      {GPIOC->CRL &= 0XFFFFF0FF;GPIOC->CRL|=8<<8;}  
#define 		DS1302_DAT_OUTPUT()     {GPIOC->CRL &= 0XFFFFF0FF;GPIOC->CRL|=3<<8;} 

//芯片寄存器地址定义 定义的写地址，读需要+1  
#define 		DS1302_SEC_REG          0x80        //秒数据地址  
#define 		DS1302_MIN_REG          0x82        //分数据地址  
#define 		DS1302_HR_REG           0x84        //时数据地址  
#define 		DS1302_DATE_REG         0x86        //日数据地址  
#define 		DS1302_MONTH_REG        0x88        //月数据地址  
#define 		DS1302_DAY_REG          0x8a        //星期几数据地址  
#define 		DS1302_YEAR_REG         0x8c        //年数据地址  
#define 		DS1302_CONTROL_REG      0x8e        //写保护寄存器地址  
#define 		DS1302_CHARGER_REG      0x90        //涓流充电寄存器              
#define 		DS1302_CLKBURST_REG     0xbe        //脉冲串寄存器  
#define 		DS1302_RAM_BASE         0X30        //RAM基础地址 

#define 		CLOCKSTOP               0X80  
#define 		CLOCKSTART              0X00  

u8 LT_RtcInit(void);
u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec);
u8 RTC_Get(void);
u8 RTC_Get_Week(u16 year,u8 month,u8 day);

//void LT_Ds1302Write(u8 address,u8 dat);
//void LT_Ds1302WriteTimeAll(u8 start);
//void LT_Ds1302Readtime(void);

//u8 LT_Ds1302Read(u8 address);
u8 LT_BcdToAscii(u8 bcdData);	

#endif
