] = openwind_night[1];
tempCloseWind[0] = closewind_night[0];
tempCloseWind[1] = closewind_night[1];
}
}
/********************************************
写时间修改值
********************************************/
void P8563_settime(void)
{
u8 i;
for(i=2;i<=8;i++) { writeData(i,g8563_Store[i-2]); } //写含小时之后时间
//writeData(6,g8563_Store[3]); //写星期
}
/********************************************
P8563的初始化-----外部调用
********************************************/
void P8563_init(void)
{
u8 i;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
/*--Config EEPROM SCL GPIO--*/
GPIO_InitStructure.GPIO_Pin = PCF_SCL;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(PCF_Part,&GPIO_InitStructure);
/*--Config EEPROM SDA GPIO--*/
GPIO_InitStructure.GPIO_Pin = PCF_SDA;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(PCF_Part,&GPIO_InitStructure);
if((ReadData(0x02)&0x7f)==0x8) /* 检查是否第一次启动,是则初始化时间,检查对象为秒
//(0x02)最高位为1则初始化*/
{
for(i=0;i<=6;i++) g8563_Store[i]=c8563_Store[i]; /*初始化时间*/
P8563_settime();
P8563_settime();
}
}
/********************************************
把时间数据形式转库十进制
***********************************************/
u8 convert_time(u8 x)
{
return (x>>4)*10+(x&0x0f);
}
/******************
修改时间,并将修改后的时间写入rtc
**********************/
void Set_time(void)
{
g8563_Store[6] = ((rtc_num[0] / 10) << 4) + rtc_num[0] % 10;
g8563_Store[5] = ((rtc_num[1] / 10) << 4) + rtc_num[1] % 10;
g8563_Store[3] = ((rtc_num[2] / 10) << 4) + rtc_num[2] % 10;
g8563_Store[2] = ((rtc_num[3] / 10) << 4) + rtc_num[3] % 10;
g8563_Store[1] = ((rtc_num[4] / 10) << 4) + rtc_num[4] % 10;
g8563_Store[0] = ((rtc_num[5] / 10) << 4) + rtc_num[5] % 10;
P8563_settime();
}
/***************************************
功能:SDA设置为浮空输入
****************************************/
void PCF8653_I2C_InputConfig(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = PCF_SDA; //SDA浮空输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(PCF_Part, &GPIO_InitStructure);
}
/***************************************
功能:FRAM_I2C设置为推挽输出
****************************************/
void PCF8653_I2C_OutputConfig(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = PCF_SDA; //SDA推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(PCF_Part, &GPIO_InitStructure);
}
void delay_us(int m)
{
int i,j;