|
|
#ifndef __RTC_H
|
#define __RTC_H
|
#include "stm32f10x.h"
|
|
|
|
|
extern u8 I2C_RECV_DATA[7];
|
|
#define RX8025_ADDR_READ 0x65
|
#define RX8025_ADDR_WRITE 0x64
|
#define RX8025_WRITE_MODE 0xF0
|
#define RX8025_READ_MODE 0xF0
|
|
/**/
|
#define RX8025_ADDR_CONTROL1 0xE0
|
#define RX8025_ADDR_CONTROL2 0xF0
|
|
|
|
#define DS1339_Write_Add RX8025_ADDR_WRITE
|
#define DS1339_Read_Add RX8025_ADDR_READ
|
#define DS1339_Status_Reg 0x0F
|
|
|
#define RX8025_ADDR_READ 0x65
|
#define RX8025_ADDR_WRITE 0x64
|
#define RX8025_WRITE_MODE 0xF0
|
#define RX8025_READ_MODE 0xF0
|
|
#define DS1339_SDA_PIN_NUM GPIO_Pin_14 // P3.1 IIC SDA ÐźÅ
|
#define DS1339_SDA_PIN_GROUP GPIOE
|
#define DS1339_CLK_PIN_NUM GPIO_Pin_13 // P3.2 IIC SCA ÐźÅ
|
#define DS1339_CLK_PIN_GROUP GPIOE
|
|
#define DS1339_INT_PIN_NUM GPIO_Pin_11 // P3.2 IIC SCA ÐźÅ
|
#define DS1339_INT_PIN_GROUP GPIOE
|
|
|
|
//IO·½ÏòÉèÖÃ
|
#define SDA_IN() {GPIOE->CRH&=0XF0FFFFFF;GPIOE->CRH|=8<<24;}
|
#define SDA_OUT() {GPIOE->CRH&=0XF0FFFFFF;GPIOE->CRH|=3<<24;}
|
|
|
#define IIC_SCL PEout(13) //SCL
|
#define IIC_SDA PEout(14) //SDA
|
#define READ_SDA PEin(14)
|
|
|
typedef struct
|
{
|
u8 hour;
|
u8 min;
|
u8 sec; //¹«ÀúÈÕÔÂÄêÖÜ
|
u8 month;
|
u8 date;
|
u8 week;
|
u16 year;
|
}calendar_obj;
|
|
extern calendar_obj calendar;
|
|
|
typedef struct
|
{
|
uint8_t year; //Ä꣬BCD Âë 00~99
|
uint8_t month; //Ô£¬BCD Âë 01~12
|
uint8_t day; //ÈÕ£¬BCD Âë 01~31
|
uint8_t hour; //ʱ£¬BCD Âë 00~23
|
uint8_t min; //·Ö£¬BCD Âë 00~59
|
uint8_t sec; //Ã룬BCD Âë 00~59
|
}sClockBCD;
|
|
|
// void I2C_STOP(void);
|
// void I2C_START(void);
|
// int I2C_GetACK(void);
|
// void I2C_SetNAk(void);
|
// void I2C_TxByte(u8 nValue);
|
// u8 I2C_RxByte(void);
|
// void I2C_Read(u8 num, u8 device_addr);
|
// void I2C_Write(u8 num, u8 device_addr,u8 *data);
|
// u8 OSFBIT_Check(void);
|
// void OSFBIT_SetLow(void);
|
void Time_Set(u16 year,u8 month,u8 date,u8 week,u8 hour,u8 min,u8 sec);
|
void Get_Time(void);
|
void set_alarm(void);
|
// void set_peroid_alarm_rst();
|
// void set_peroid_alarm();
|
void Time_new_Set(u8 year,u8 month,u8 date,u8 week,u8 hour,u8 min,u8 sec);
|
void BCD_time_Set(u8 year,u8 month,u8 date,u8 week,u8 hour,u8 min,u8 sec);
|
void test_rtc(void);
|
|
extern sClockBCD Time_BCD_g; //BCD
|
|
#endif /* IIC_H_ */
|