eecs-bsp-test-code-2/inc/DS1302.h

75 lines
3.5 KiB
C
Raw Normal View History

2022-08-22 14:51:00 +08:00
/**********************************DS1302 V1.1 ˵<><CBB5> ************************************************************************
DS1302ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD>ơ<EFBFBD>STC-Bѧϰ<EFBFBD><EFBFBD><EFBFBD>DS1302оƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DS1302<EFBFBD>RTC<EFBFBD><EFBFBD>ʵʱʱ<EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD>NVM<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RTC<EFBFBD><EFBFBD>NVM<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŧ<EFBFBD>۵<EFBFBD><EFBFBD><EFBFBD>BATά<EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
RTC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¡<EFBFBD><EFBFBD>ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NVM<EFBFBD><EFBFBD><EFBFBD>31 Bytes<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>ַΪ<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>30<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>ַΪ30<EFBFBD>ĵ<EFBFBD>Ԫ<EFBFBD><EFBFBD>DS1302Init()<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>DS1302<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>)
DS1302ģ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>Ӧ<EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(1) void DS1302Init(struct_DS1302_RTC time)<EFBFBD><EFBFBD>DS1302<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>DS1302<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>øú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>struct_DS1302_RTC time
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DS1302<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RTC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧЧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD>time<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>RTC
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(2) struct_DS1302_RTC RTC_Read(void)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡDS1302<EFBFBD>ڲ<EFBFBD>ʵʱʱ<EFBFBD><EFBFBD>RTC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>struct_DS1302<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>struct_DS1302<EFBFBD><EFBFBD><EFBFBD>
(3) void RTC_Write(struct_DS1302_RTC time) <EFBFBD><EFBFBD>дDS1302<EFBFBD>ڲ<EFBFBD>ʵʱʱ<EFBFBD><EFBFBD>RTC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>struct_DS1302 time<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>struct_DS1302<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(4) unsigned char NVM_Read(unsigned char NVM_addr): <EFBFBD><EFBFBD>ȡNVMһ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NVM_addr<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ0<EFBFBD><EFBFBD>30<EFBFBD><EFBFBD><EFBFBD><EFBFBD>31<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NVM<EFBFBD>ж<EFBFBD>Ӧ<EFBFBD><EFBFBD>Ԫ<EFBFBD>Ĵ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>1Byte<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enumDS1302_error
(5) unsigned char NVM_Write(unsigned char NVM_addr, unsigned char NVM_data)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NVMһ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַд<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NVM_addr<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>30<EFBFBD><EFBFBD><EFBFBD><EFBFBD>31<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>30<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>DS1302Init()<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>DS1302<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD>
NVM_data<EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>NVM<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>1Byte<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enumDS1302_OK
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enumDS1302_error
<EFBFBD>struct_DS1302_RTC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD>DS1302Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ
typedef struct
{ unsigned char second; //<2F>루BCD<43><EFBFBD><EBA3AC><EFBFBD>¾<EFBFBD>ΪBCD<43>
unsigned char minute; //<2F><>
unsigned char hour; //ʱ
unsigned char day; //<2F><>
unsigned char month; //<2F><>
unsigned char week; //<2F><><EFBFBD><EFBFBD>
unsigned char year; //<2F><>
} struct_DS1302_RTC;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DS1302<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DS1302<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>Դ<EFBFBD><EFBFBD>Ϊ<EFBFBD>͹<EFBFBD><EFBFBD><EFBFBD>RAM<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŧ<EFBFBD>۵<EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>M24C01<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>31<EFBFBD>ֽڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޡ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ں̣ܶ<EFBFBD><EFBFBD>ɺ<EFBFBD><EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>дDS1302<EFBFBD>ڲ<EFBFBD>NVMÿһ<EFBFBD><EFBFBD><EFBFBD>ֽھ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ʮuS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫʱʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD>18008400450<EFBFBD><EFBFBD> 2021<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>2021<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>15<EFBFBD>ոĽ<EFBFBD>
*/
#ifndef _DS1302_H_
#define _DS1302_H_
typedef struct
{ unsigned char second; //<2F>루BCD<43><EFBFBD><EBA3AC><EFBFBD>¾<EFBFBD>ΪBCD<43>
unsigned char minute; //<2F><>
unsigned char hour; //ʱ
unsigned char day; //<2F><>
unsigned char month; //<2F><>
unsigned char week; //<2F><><EFBFBD><EFBFBD>
unsigned char year; //<2F><>
} struct_DS1302_RTC;
extern void DS1302Init(struct_DS1302_RTC time); //DS1302<30><32>ʼ<EFBFBD><CABC>
extern struct_DS1302_RTC RTC_Read(void); //<2F><>RTC<54><43><EFBFBD><EFBFBD>RTCʱ<43><CAB1><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>
extern void RTC_Write(struct_DS1302_RTC time); //дRTC<54><43>У<EFBFBD><D0A3>RTCʱ<43>ӣ<EFBFBD>
extern unsigned char NVM_Read(unsigned char NVM_addr); //<2F><>NVM<56><4D><EFBFBD><EFBFBD>DS1302<30>еķ<D0B5><C4B7><EFBFBD>ʧ<EFBFBD><EFBFBD><E6B4A2>Ԫ<EFBFBD><D4AA><EFBFBD>ݣ<EFBFBD>
extern unsigned char NVM_Write(unsigned char NVM_addr, unsigned char NVM_data); //дNVM<56><4D>дDS1302<30>еķ<D0B5><C4B7><EFBFBD>ʧ<EFBFBD><EFBFBD><E6B4A2>Ԫ<EFBFBD><D4AA>
enum DS1302name {enumDS1302_OK,enumDS1302_error};
#endif