pdf-icon

Arduino入門

2. デバイス&サンプル

Core2 RTC

类名: Rtc

begin()

機能です:

RTC時計の初期化

原型関数です:

void begin(void)

注意:
1.1. M5.begin() を使用して RTC 時計を初期化したくない場合は、RTC を使用する前にこの機能を呼び出してください。

使用例です:

cpp
1 2 3 4 5 6 7 8
#include <M5Core2.h>
void setup() {
M5.Rtc.begin(); //初始化 RTC时钟
}
void loop() {
}

SetTime()

機能です:

リアルタイムクロックの時間を設定

原型関数です:

void SetTime(RTC_TimeTypeDef* RTC_TimeStruct)

使用例です:

cpp
1 2 3 4 5 6 7 8 9 10 11 12
#include <M5Core2.h>
RTC_TimeTypeDef TimeStruct;
void setup() {
M5.begin();
TimeStruct.Hours = 18; //设置实时时钟结构体的具体时刻
TimeStruct.Minutes = 56;
TimeStruct.Seconds = 10;
M5.Rtc.SetTime(&TimeStruct); //将设置的时间写入实时时钟
}
void loop(){}

GetTime()

機能です:

リアルタイムクロックの時間を取得

原型関数です:

void GetTime(RTC_TimeTypeDef* RTC_TimeStruct)

使用例です:

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#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);
}

SetData()

機能です:

リアルタイムクロックの日付を設定

原型関数です:

void SetData(RTC_TimeTypeDef* RTC_DateStruct)

使用例です:

cpp
1 2 3 4 5 6 7 8 9 10 11 12
#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(){}

GetData()

機能です:

リアルタイムクロックの日付を取得

原型関数です:

void GetData(RTC_TimeTypeDef* RTC_DateStruct)

使用例です:

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#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); //获取实时时钟的日期
M5.Lcd.setCursor(0, 15);
M5.Lcd.printf("Data: %04d-%02d-%02d/n",DateStruct.Year, DateStruct.Month,DateStruct.Date); //将此刻实时时钟的日期在屏幕输出
M5.Lcd.printf("Week: %d/n",DateStruct.WeekDay);
delay(500);
}

clearIRQ()

機能です:

割込み要求をクリア

原型関数です:

void clearIRQ()

disableIRQ()

機能です:

割込み要求をOFFに設定

原型関数です:

void disableIRQ()

SetAlarmIRQ()

機能です:

割込み時計を設定

原型関数です:

int SetAlarmIRQ(int afterSeconds)

int SetAlarmIRQ( const RTC_TimeTypeDef &RTC_TimeStruct)

int SetAlarmIRQ( const RTC_DateTypeDef &RTC_DateStruct, const RTC_TimeTypeDef &RTC_TimeStruct)

使用例です:

cpp
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
#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();
}
}
On This Page