forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-30 a1810b89e66f184c62a0588ae7d57c91d0c376e8
HARDWARE/RTC/RTC.h
@@ -1,99 +1,24 @@
#ifndef _RTC_H_
#define _RTC_H_
#ifndef  __RTC_H
#define  __RTC_H
#include "stm32f10x.h"
#include "define_all.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;}
//extern __IO RTC_TimeDateTypeDef calendar_g;
void RTC_Init(void);
ErrorStatus_STM32 Get_Sys_Rtc_Time(__IO RTC_TimeDateTypeDef * pOutput_timedata);
ErrorStatus_STM32 Set_Sys_Rtc_Time(uint8_t year,uint8_t month,uint8_t day,uint8_t hour,uint8_t min,uint8_t sec,uint8_t week);
#endif
#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_ */