M5StickC  0.2.0
RTC クラス

#include <RTC.h>

公開メンバ関数

 RTC ()
 
void begin (void)
 
void GetBm8563Time (void)
 
void SetTime (RTC_TimeTypeDef *RTC_TimeStruct)
 
void SetData (RTC_DateTypeDef *RTC_DateStruct)
 
void GetTime (RTC_TimeTypeDef *RTC_TimeStruct)
 
void GetData (RTC_DateTypeDef *RTC_DateStruct)
 

公開変数類

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]
 

詳解

RTC.h22 行目に定義があります。

構築子と解体子

◆ RTC()

RTC::RTC ( )

RTC.cpp5 行目に定義があります。

5  {
6 
7 }

関数詳解

◆ begin()

void RTC::begin ( void  )

RTC.cpp9 行目に定義があります。

9  {
10  Wire1.begin(21,22);
11 
12  Wire1.beginTransmission(0x51);
13  Wire1.write(0x00);
14  Wire1.write(0x00); // Status reset
15  Wire1.write(0x00); // Status2 reset
16  Wire1.endTransmission();
17 }

◆ GetBm8563Time()

void RTC::GetBm8563Time ( void  )

RTC.cpp19 行目に定義があります。

19  {
20  Wire1.beginTransmission(0x51);
21  Wire1.write(0x02);
22  Wire1.endTransmission();
23  Wire1.requestFrom(0x51,7);
24  while(Wire1.available()){
25 
26  trdata[0] = Wire1.read();
27  trdata[1] = Wire1.read();
28  trdata[2] = Wire1.read();
29  trdata[3] = Wire1.read();
30  trdata[4] = Wire1.read();
31  trdata[5] = Wire1.read();
32  trdata[6] = Wire1.read();
33 
34  }
35 
36  DataMask();
37  Bcd2asc();
38  Str2Time();
39 }

◆ GetData()

void RTC::GetData ( RTC_DateTypeDef RTC_DateStruct)

RTC.cpp150 行目に定義があります。

150  {
151 
152  uint8_t buf[4] = {0};
153 
154  Wire1.beginTransmission(0x51);
155  Wire1.write(0x05);
156  Wire1.endTransmission();
157  Wire1.requestFrom(0x51,4);
158 
159  while(Wire1.available()){
160 
161  buf[0] = Wire1.read();
162  buf[1] = Wire1.read();
163  buf[2] = Wire1.read();
164  buf[3] = Wire1.read();
165 
166  }
167 
168 
169  RTC_DateStruct ->Date = Bcd2ToByte(buf[0]&0x3f);
170  RTC_DateStruct ->WeekDay = Bcd2ToByte(buf[1]&0x07);
171  RTC_DateStruct ->Month = Bcd2ToByte(buf[2]&0x1f);
172 
173  if(buf[2]&0x80){
174  RTC_DateStruct ->Year = 1900 + Bcd2ToByte(buf[3]&0xff);
175  }else{
176  RTC_DateStruct ->Year = 2000 + Bcd2ToByte(buf[3]&0xff);
177  }
178 
179 }

◆ GetTime()

void RTC::GetTime ( RTC_TimeTypeDef RTC_TimeStruct)

RTC.cpp109 行目に定義があります。

109  {
110 
111  //if()
112  uint8_t buf[3] = {0};
113 
114  Wire1.beginTransmission(0x51);
115  Wire1.write(0x02);
116  Wire1.endTransmission();
117  Wire1.requestFrom(0x51,3);
118 
119  while(Wire1.available()){
120 
121  buf[0] = Wire1.read();
122  buf[1] = Wire1.read();
123  buf[2] = Wire1.read();
124 
125  }
126 
127 
128  RTC_TimeStruct -> Seconds = Bcd2ToByte(buf[0]&0x7f); //秒
129  RTC_TimeStruct -> Minutes = Bcd2ToByte(buf[1]&0x7f); //分
130  RTC_TimeStruct -> Hours = Bcd2ToByte(buf[2]&0x3f); //时
131 }

◆ SetData()

void RTC::SetData ( RTC_DateTypeDef RTC_DateStruct)

RTC.cpp182 行目に定義があります。

182  {
183 
184  if(RTC_DateStruct == NULL)
185  return;
186  Wire1.beginTransmission(0x51);
187  Wire1.write(0x05);
188  Wire1.write(ByteToBcd2(RTC_DateStruct->Date));
189  Wire1.write(ByteToBcd2(RTC_DateStruct->WeekDay));
190 
191  if(RTC_DateStruct->Year < 2000){
192 
193  Wire1.write(ByteToBcd2(RTC_DateStruct->Month) | 0x80);
194  Wire1.write(ByteToBcd2((uint8_t)(RTC_DateStruct->Year % 100)));
195 
196  }else
197  {
198  /* code */
199  Wire1.write(ByteToBcd2(RTC_DateStruct->Month) | 0x00);
200  Wire1.write(ByteToBcd2((uint8_t)(RTC_DateStruct->Year %100)));
201  }
202 
203  Wire1.endTransmission();
204 
205 }

◆ SetTime()

void RTC::SetTime ( RTC_TimeTypeDef RTC_TimeStruct)

RTC.cpp133 行目に定義があります。

133  {
134 
135  if(RTC_TimeStruct == NULL)
136  return;
137 
138  Wire1.beginTransmission(0x51);
139  Wire1.write(0x02);
140  Wire1.write(ByteToBcd2(RTC_TimeStruct->Seconds));
141  Wire1.write(ByteToBcd2(RTC_TimeStruct->Minutes));
142  Wire1.write(ByteToBcd2(RTC_TimeStruct->Hours));
143  Wire1.endTransmission();
144 
145 
146 }

メンバ詳解

◆ asc

uint8_t RTC::asc[14]

RTC.h45 行目に定義があります。

◆ DateString

uint8_t RTC::DateString[9]

RTC.h42 行目に定義があります。

◆ Day

uint8_t RTC::Day

RTC.h39 行目に定義があります。

◆ Hour

uint8_t RTC::Hour

RTC.h37 行目に定義があります。

◆ Minute

uint8_t RTC::Minute

RTC.h36 行目に定義があります。

◆ Month

uint8_t RTC::Month

RTC.h40 行目に定義があります。

◆ Second

uint8_t RTC::Second

RTC.h35 行目に定義があります。

◆ TimeString

uint8_t RTC::TimeString[9]

RTC.h43 行目に定義があります。

◆ Week

uint8_t RTC::Week

RTC.h38 行目に定義があります。

◆ Year

uint8_t RTC::Year

RTC.h41 行目に定義があります。


このクラス詳解は次のファイルから抽出されました:
RTC_TimeTypeDef::Minutes
uint8_t Minutes
Definition: RTC.h:9
RTC_TimeTypeDef::Seconds
uint8_t Seconds
Definition: RTC.h:10
RTC_DateTypeDef::Year
uint16_t Year
Definition: RTC.h:19
RTC_DateTypeDef::Date
uint8_t Date
Definition: RTC.h:18
RTC_DateTypeDef::WeekDay
uint8_t WeekDay
Definition: RTC.h:16
RTC_TimeTypeDef::Hours
uint8_t Hours
Definition: RTC.h:8
RTC_DateTypeDef::Month
uint8_t Month
Definition: RTC.h:17