Functionality:
Initializes the RTC (Real-Time Clock).
Function Prototype:
void begin(void)
M5.begin()
to initialize the RTC clock, please call this function before using the RTC.Example Usage:
#include <M5Core2.h>
void setup() {
M5.Rtc.begin(); // Initialize the RTC clock
}
void loop() {
}
Functionality:
Sets the Real-Time Clock time.
Function Prototype:
void SetTime(RTC_TimeTypeDef* RTC_TimeStruct)
Example Usage:
#include <M5Core2.h>
RTC_TimeTypeDef TimeStruct;
void setup() {
M5.begin();
TimeStruct.Hours = 18; // Set the specific time in the RTC structure
TimeStruct.Minutes = 56;
TimeStruct.Seconds = 10;
M5.Rtc.SetTime(&TimeStruct); // Write the set time to the RTC
}
void loop(){}
Functionality:
Retrieves the Real-Time Clock time.
Function Prototype:
void GetTime(RTC_TimeTypeDef* RTC_TimeStruct)
Example Usage:
#include <M5Core2.h>
RTC_TimeTypeDef TimeStruct;
void setup() {
M5.begin();
M5.Lcd.println("RTC Time TEST");
TimeStruct.Hours = 18;
TimeStruct.Minutes = 56;
TimeStruct.Seconds = 10;
M5.Rtc.SetTime(&TimeStruct);
}
void loop() {
M5.Rtc.GetTime(&TimeStruct);
M5.Lcd.setCursor(0, 15);
M5.Lcd.printf("Time: %02d : %02d : %02d/n",TimeStruct.Hours, TimeStruct.Minutes, TimeStruct.Seconds);
delay(500);
}
Functionality:
Sets the Real-Time Clock date.
Function Prototype:
void SetData(RTC_TimeTypeDef* RTC_DateStruct)
Example Usage:
#include <M5Core2.h>
RTC_DateTypeDef DateStruct;
void setup() {
M5.begin();
DateStruct.WeekDay = 3;
DateStruct.Month = 3;
DateStruct.Date = 22;
DateStruct.Year = 2019;
M5.Rtc.SetData(&DateStruct);
}
void loop(){}
Functionality:
Retrieves the Real-Time Clock date.
Function Prototype:
void GetData(RTC_TimeTypeDef* RTC_DateStruct)
Example Usage:
#include <M5Core2.h>
RTC_DateTypeDef DateStruct;
void setup() {
M5.begin();
M5.Lcd.println("RTC Date TEST");
DateStruct.WeekDay = 5;
DateStruct.Month = 7;
DateStruct.Date = 23;
DateStruct.Year = 2021;
M5.Rtc.SetDate(&DateStruct);
}
void loop() {
M5.Rtc.GetDate(&DateStruct); // Retrieve the date from the RTC
M5.Lcd.setCursor(0, 15);
M5.Lcd.printf("Data: %04d-%02d-%02d/n",DateStruct.Year, DateStruct.Month,DateStruct.Date); // Display the current RTC date on the screen
M5.Lcd.printf("Week: %d/n",DateStruct.WeekDay);
delay(500);
}
function:
Clear interrupt request
function prototype:
void clearIRQ()
function:
Close interrupt request
Close interrupt request
function prototype:
void disableIRQ()
function:
Set interrupt clock
function prototype:
int SetAlarmIRQ(int afterSeconds)
int SetAlarmIRQ( const RTC_TimeTypeDef &RTC_TimeStruct)
int SetAlarmIRQ( const RTC_DateTypeDef &RTC_DateStruct, const RTC_TimeTypeDef &RTC_TimeStruct)
EXAMPLES:
#include <M5Core2.h>
RTC_TimeTypeDef TimeStruct;
void setup() {
M5.begin();
M5.Lcd.println("RTC SetAlarmIQR");
TimeStruct.Hours = 18;
TimeStruct.Minutes = 56;
TimeStruct.Seconds = 10;
M5.Rtc.SetTime(&TimeStruct);
}
void loop() {
M5.update();
M5.Rtc.GetTime(&TimeStruct);
M5.Lcd.setCursor(0, 15);
M5.Lcd.printf("Time: %02d : %02d : %02d/n",TimeStruct.Hours, TimeStruct.Minutes, TimeStruct.Seconds);
if(M5.BtnA.wasPressed()){
M5.Lcd.println("M5Core2 Will Close, Restore After 5 seconds ");
delay(2000);
M5.Rtc.clearIRQ();
M5.Rtc.SetAlarmIRQ(5);
delay(10);
M5.Axp.PowerOff();
}
}