11#include " Unit_RTC.h"
22
3- Unit_RTC::Unit_RTC () {
3+ Unit_RTC::Unit_RTC ()
4+ {
45 _addr = DEVICE_ADDR ;
56}
67
7- Unit_RTC::Unit_RTC (uint8_t addr) {
8+ Unit_RTC::Unit_RTC (uint8_t addr)
9+ {
810 _addr = addr;
911}
1012
1113/* ! @brief Initialize the RTC. */
12- void Unit_RTC::begin () {
14+ void Unit_RTC::begin ()
15+ {
1316 _wire = &Wire;
1417 _wire->begin ();
1518 writeReg (0x00 , 0x00 );
@@ -18,7 +21,8 @@ void Unit_RTC::begin() {
1821}
1922
2023/* ! @brief Initialize the RTC. */
21- void Unit_RTC::begin (TwoWire *wire) {
24+ void Unit_RTC::begin (TwoWire *wire)
25+ {
2226 _wire = wire;
2327 _wire->begin ();
2428 writeReg (0x00 , 0x00 );
@@ -27,8 +31,8 @@ void Unit_RTC::begin(TwoWire *wire) {
2731}
2832
2933/* ! @brief Initialize the RTC. */
30- void Unit_RTC::begin (TwoWire *wire, uint8_t scl, uint8_t sda,
31- uint32_t i2c_freq) {
34+ void Unit_RTC::begin (TwoWire *wire, uint8_t scl, uint8_t sda, uint32_t i2c_freq)
35+ {
3236 _wire = wire;
3337 _wire->begin (DEVICE_ADDR , sda, scl, i2c_freq);
3438 writeReg (0x00 , 0x00 );
@@ -37,23 +41,26 @@ void Unit_RTC::begin(TwoWire *wire, uint8_t scl, uint8_t sda,
3741}
3842
3943/* ! @brief Write data to register. */
40- void Unit_RTC::writeReg (uint8_t reg, uint8_t data) {
44+ void Unit_RTC::writeReg (uint8_t reg, uint8_t data)
45+ {
4146 _wire->beginTransmission (DEVICE_ADDR );
4247 _wire->write (reg);
4348 _wire->write (data);
4449 _wire->endTransmission ();
4550}
4651
4752/* ! @brief Read data from register. */
48- uint8_t Unit_RTC::ReadReg (uint8_t reg) {
53+ uint8_t Unit_RTC::ReadReg (uint8_t reg)
54+ {
4955 _wire->beginTransmission (DEVICE_ADDR );
5056 _wire->write (reg);
5157 _wire->endTransmission (false );
5258 _wire->requestFrom (DEVICE_ADDR , 1 );
5359 return _wire->read ();
5460}
5561
56- void Unit_RTC::Str2Time (void ) {
62+ void Unit_RTC::Str2Time (void )
63+ {
5764 Second = (asc[0 ] - 0x30 ) * 10 + asc[1 ] - 0x30 ;
5865 Minute = (asc[2 ] - 0x30 ) * 10 + asc[3 ] - 0x30 ;
5966 Hour = (asc[4 ] - 0x30 ) * 10 + asc[5 ] - 0x30 ;
@@ -66,16 +73,17 @@ void Unit_RTC::Str2Time(void) {
6673 */
6774}
6875
69- void Unit_RTC::DataMask () {
70- _trdata[0 ] = _trdata[0 ] & 0x7f ; // 秒
71- _trdata[1 ] = _trdata[1 ] & 0x7f ; // 分
72- _trdata[2 ] = _trdata[2 ] & 0x3f ; // 时
76+ void Unit_RTC::DataMask ()
77+ {
78+ _trdata[0 ] = _trdata[0 ] & 0x7f ; // 秒
79+ _trdata[1 ] = _trdata[1 ] & 0x7f ; // 分
80+ _trdata[2 ] = _trdata[2 ] & 0x3f ; // 时
7381
74- _trdata[3 ] = _trdata[3 ] & 0x3f ; // 日
75- _trdata[4 ] = _trdata[4 ] & 0x07 ; // 星期
76- _trdata[5 ] = _trdata[5 ] & 0x1f ; // 月
82+ _trdata[3 ] = _trdata[3 ] & 0x3f ; // 日
83+ _trdata[4 ] = _trdata[4 ] & 0x07 ; // 星期
84+ _trdata[5 ] = _trdata[5 ] & 0x1f ; // 月
7785
78- _trdata[6 ] = _trdata[6 ] & 0xff ; // 年
86+ _trdata[6 ] = _trdata[6 ] & 0xff ; // 年
7987}
8088/* *******************************************************************
8189函 数 名: void Bcd2asc(void)
@@ -85,22 +93,24 @@ void Unit_RTC::DataMask() {
8593入口参数:
8694返 回 值:无
8795***********************************************************************/
88- void Unit_RTC::Bcd2asc (void ) {
96+ void Unit_RTC::Bcd2asc (void )
97+ {
8998 uint8_t i, j;
9099 for (j = 0 , i = 0 ; i < 7 ; i++) {
91- asc[j++] =
92- (_trdata[i] & 0xf0 ) >> 4 | 0x30 ; /* 格式为: 秒 分 时 日 月 星期 年 */
100+ asc[j++] = (_trdata[i] & 0xf0 ) >> 4 | 0x30 ; /* 格式为: 秒 分 时 日 月 星期 年 */
93101 asc[j++] = (_trdata[i] & 0x0f ) | 0x30 ;
94102 }
95103}
96104
97- uint8_t Unit_RTC::Bcd2ToByte (uint8_t Value) {
105+ uint8_t Unit_RTC::Bcd2ToByte (uint8_t Value)
106+ {
98107 uint8_t tmp = 0 ;
99108 tmp = ((uint8_t )(Value & (uint8_t )0xF0 ) >> (uint8_t )0x4 ) * 10 ;
100109 return (tmp + (Value & (uint8_t )0x0F ));
101110}
102111
103- uint8_t Unit_RTC::ByteToBcd2 (uint8_t Value) {
112+ uint8_t Unit_RTC::ByteToBcd2 (uint8_t Value)
113+ {
104114 uint8_t bcdhigh = 0 ;
105115
106116 while (Value >= 10 ) {
@@ -111,7 +121,8 @@ uint8_t Unit_RTC::ByteToBcd2(uint8_t Value) {
111121 return ((uint8_t )(bcdhigh << 4 ) | Value);
112122}
113123
114- void Unit_RTC::getTime (rtc_time_type *RTC_TimeStruct) {
124+ void Unit_RTC::getTime (rtc_time_type *RTC_TimeStruct)
125+ {
115126 // if()
116127 uint8_t buf[3 ] = {0 };
117128
@@ -126,14 +137,15 @@ void Unit_RTC::getTime(rtc_time_type *RTC_TimeStruct) {
126137 buf[2 ] = _wire->read ();
127138 }
128139
129- RTC_TimeStruct->Seconds = Bcd2ToByte (buf[0 ] & 0x7f ); // 秒
130- RTC_TimeStruct->Minutes = Bcd2ToByte (buf[1 ] & 0x7f ); // 分
131- RTC_TimeStruct->Hours = Bcd2ToByte (buf[2 ] & 0x3f ); // 时
140+ RTC_TimeStruct->Seconds = Bcd2ToByte (buf[0 ] & 0x7f ); // 秒
141+ RTC_TimeStruct->Minutes = Bcd2ToByte (buf[1 ] & 0x7f ); // 分
142+ RTC_TimeStruct->Hours = Bcd2ToByte (buf[2 ] & 0x3f ); // 时
132143}
133144
134- int Unit_RTC::setTime (rtc_time_type *RTC_TimeStruct) {
135- if (RTC_TimeStruct == NULL || RTC_TimeStruct->Hours > 24 ||
136- RTC_TimeStruct->Minutes > 60 || RTC_TimeStruct->Seconds > 60 )
145+ int Unit_RTC::setTime (rtc_time_type *RTC_TimeStruct)
146+ {
147+ if (RTC_TimeStruct == NULL || RTC_TimeStruct->Hours > 24 || RTC_TimeStruct->Minutes > 60 ||
148+ RTC_TimeStruct->Seconds > 60 )
137149 return 0 ;
138150
139151 _wire->beginTransmission (DEVICE_ADDR );
@@ -145,7 +157,8 @@ int Unit_RTC::setTime(rtc_time_type *RTC_TimeStruct) {
145157 return 1 ;
146158}
147159
148- void Unit_RTC::getDate (rtc_date_type *RTC_DateStruct) {
160+ void Unit_RTC::getDate (rtc_date_type *RTC_DateStruct)
161+ {
149162 uint8_t buf[4 ] = {0 };
150163
151164 _wire->beginTransmission (DEVICE_ADDR );
@@ -171,9 +184,10 @@ void Unit_RTC::getDate(rtc_date_type *RTC_DateStruct) {
171184 }
172185}
173186
174- int Unit_RTC::setDate (rtc_date_type *RTC_DateStruct) {
175- if (RTC_DateStruct == NULL || RTC_DateStruct->WeekDay > 7 ||
176- RTC_DateStruct->Date > 31 || RTC_DateStruct->Month > 12 )
187+ int Unit_RTC::setDate (rtc_date_type *RTC_DateStruct)
188+ {
189+ if (RTC_DateStruct == NULL || RTC_DateStruct->WeekDay > 7 || RTC_DateStruct->Date > 31 ||
190+ RTC_DateStruct->Month > 12 )
177191 return 0 ;
178192 _wire->beginTransmission (DEVICE_ADDR );
179193 _wire->write (0x05 );
@@ -193,7 +207,8 @@ int Unit_RTC::setDate(rtc_date_type *RTC_DateStruct) {
193207 return 1 ;
194208}
195209
196- int Unit_RTC::setAlarmIRQ (int afterSeconds) {
210+ int Unit_RTC::setAlarmIRQ (int afterSeconds)
211+ {
197212 uint8_t reg_value = 0 ;
198213 reg_value = ReadReg (0x01 );
199214
@@ -224,7 +239,8 @@ int Unit_RTC::setAlarmIRQ(int afterSeconds) {
224239 return afterSeconds * div;
225240}
226241
227- int Unit_RTC::setAlarmIRQ (const rtc_time_type &RTC_TimeStruct) {
242+ int Unit_RTC::setAlarmIRQ (const rtc_time_type &RTC_TimeStruct)
243+ {
228244 uint8_t irq_enable = false ;
229245 uint8_t out_buf[4 ] = {0x80 , 0x80 , 0x80 , 0x80 };
230246
@@ -257,8 +273,8 @@ int Unit_RTC::setAlarmIRQ(const rtc_time_type &RTC_TimeStruct) {
257273 return irq_enable ? 1 : 0 ;
258274}
259275
260- int Unit_RTC::setAlarmIRQ (const rtc_date_type &RTC_DateStruct,
261- const rtc_time_type &RTC_TimeStruct) {
276+ int Unit_RTC::setAlarmIRQ (const rtc_date_type &RTC_DateStruct, const rtc_time_type &RTC_TimeStruct)
277+ {
262278 uint8_t irq_enable = false ;
263279 uint8_t out_buf[4 ] = {0x80 , 0x80 , 0x80 , 0x80 };
264280
@@ -298,11 +314,13 @@ int Unit_RTC::setAlarmIRQ(const rtc_date_type &RTC_DateStruct,
298314 return irq_enable ? 1 : 0 ;
299315}
300316
301- void Unit_RTC::clearIRQ () {
317+ void Unit_RTC::clearIRQ ()
318+ {
302319 uint8_t data = ReadReg (0x01 );
303320 writeReg (0x01 , data & 0xf3 );
304321}
305- void Unit_RTC::disableIRQ () {
322+ void Unit_RTC::disableIRQ ()
323+ {
306324 clearIRQ ();
307325 uint8_t data = ReadReg (0x01 );
308326 writeReg (0x01 , data & 0xfC );
0 commit comments