forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

周巍
2024-04-11 91ef77c00ed797b1048c5187f416e351e646a009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
 
#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_ */