Files
mixly3-server/arduino-libs/arduino-cli/libraries/M5Core2-master/src/RTC.h

70 lines
1.3 KiB
C++

#ifndef __RTC_H__
#define __RTC_H__
#include <Wire.h>
typedef struct {
uint8_t Hours;
uint8_t Minutes;
uint8_t Seconds;
} RTC_TimeTypeDef;
typedef struct {
uint8_t WeekDay;
uint8_t Month;
uint8_t Date;
uint16_t Year;
} RTC_DateTypeDef;
class RTC {
public:
RTC();
void begin(void);
void GetBm8563Time(void);
int SetTime(RTC_TimeTypeDef* RTC_TimeStruct);
int SetDate(RTC_DateTypeDef* RTC_DateStruct);
void GetTime(RTC_TimeTypeDef* RTC_TimeStruct);
void GetDate(RTC_DateTypeDef* RTC_DateStruct);
int SetAlarmIRQ(int afterSeconds);
int SetAlarmIRQ(const RTC_TimeTypeDef& RTC_TimeStruct);
int SetAlarmIRQ(const RTC_DateTypeDef& RTC_DateStruct,
const RTC_TimeTypeDef& RTC_TimeStruct);
void clearIRQ();
void disableIRQ();
public:
uint8_t Second;
uint8_t Minute;
uint8_t Hour;
uint8_t Week;
uint8_t Day;
uint8_t Month;
uint8_t Year;
uint8_t DateString[9];
uint8_t TimeString[9];
uint8_t asc[14];
private:
void Bcd2asc(void);
void DataMask();
void Str2Time(void);
void WriteReg(uint8_t reg, uint8_t data);
uint8_t ReadReg(uint8_t reg);
uint8_t Bcd2ToByte(uint8_t Value);
uint8_t ByteToBcd2(uint8_t Value);
private:
/*定义数组用来存储读取的时间数据 */
uint8_t trdata[7];
/*定义数组用来存储转换的 asc 码时间数据*/
// uint8_t asc[14];
};
#endif