Skip to content

Commit 626aef4

Browse files
committed
pico w: Add soft RTC support
1 parent 6bef122 commit 626aef4

File tree

3 files changed

+32
-7
lines changed

3 files changed

+32
-7
lines changed

src/utility/time/RTCMillis.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include "AIoTC_Config.h"
2323

24-
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266)
24+
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266) || defined (ARDUINO_RASPBERRY_PI_PICO_W)
2525

2626
#include <Arduino.h>
2727
#include "RTCMillis.h"
@@ -61,4 +61,4 @@ unsigned long RTCMillis::get()
6161
return _last_rtc_update_value;
6262
}
6363

64-
#endif /* HAS_NOTECARD || ARDUINO_ARCH_ESP8266 */
64+
#endif /* HAS_NOTECARD || ARDUINO_ARCH_ESP8266 || ARDUINO_RASPBERRY_PI_PICO_W */

src/utility/time/RTCMillis.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#ifndef ARDUINO_IOT_CLOUD_RTC_MILLIS_H_
1919
#define ARDUINO_IOT_CLOUD_RTC_MILLIS_H_
2020

21-
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266)
21+
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266) || defined (ARDUINO_RASPBERRY_PI_PICO_W)
2222

2323
/**************************************************************************************
2424
* INCLUDE
@@ -45,6 +45,6 @@ class RTCMillis
4545

4646
};
4747

48-
#endif /* HAS_NOTECARD || ARDUINO_ARCH_ESP8266 */
48+
#endif /* HAS_NOTECARD || ARDUINO_ARCH_ESP8266 || ARDUINO_RASPBERRY_PI_PICO_W */
4949

5050
#endif /* ARDUINO_IOT_CLOUD_RTC_MILLIS_H_ */

src/utility/time/TimeService.cpp

+28-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include "NTPUtils.h"
2828
#include "TimeService.h"
2929

30-
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266)
30+
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266) || defined (ARDUINO_RASPBERRY_PI_PICO_W)
3131
#include "RTCMillis.h"
3232
#elif defined(ARDUINO_ARCH_SAMD)
3333
#include <RTCZero.h>
@@ -41,7 +41,7 @@
4141
* GLOBAL VARIABLES
4242
**************************************************************************************/
4343

44-
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266)
44+
#if defined(HAS_NOTECARD) || defined(ARDUINO_ARCH_ESP8266) || defined (ARDUINO_RASPBERRY_PI_PICO_W)
4545
RTCMillis rtc;
4646
#elif defined(ARDUINO_ARCH_SAMD)
4747
RTCZero rtc;
@@ -89,6 +89,12 @@ void renesas_setRTC(unsigned long time);
8989
unsigned long renesas_getRTC();
9090
#endif
9191

92+
#ifdef ARDUINO_RASPBERRY_PI_PICO_W
93+
void pico_w_initRTC();
94+
void pico_w_setRTC(unsigned long time);
95+
unsigned long pico_w_getRTC();
96+
#endif
97+
9298
#endif /* HAS_NOTECARD */
9399

94100
/**************************************************************************************
@@ -356,6 +362,7 @@ void TimeServiceClass::initRTC()
356362
#elif defined (ARDUINO_ARCH_RENESAS)
357363
renesas_initRTC();
358364
#elif defined (ARDUINO_RASPBERRY_PI_PICO_W)
365+
pico_w_initRTC();
359366
#else
360367
#error "RTC not available for this architecture"
361368
#endif
@@ -376,6 +383,7 @@ void TimeServiceClass::setRTC(unsigned long time)
376383
#elif defined (ARDUINO_ARCH_RENESAS)
377384
renesas_setRTC(time);
378385
#elif defined (ARDUINO_RASPBERRY_PI_PICO_W)
386+
pico_w_setRTC(time);
379387
#else
380388
#error "RTC not available for this architecture"
381389
#endif
@@ -396,7 +404,7 @@ unsigned long TimeServiceClass::getRTC()
396404
#elif defined (ARDUINO_ARCH_RENESAS)
397405
return renesas_getRTC();
398406
#elif defined (ARDUINO_RASPBERRY_PI_PICO_W)
399-
return 1;
407+
return pico_w_getRTC();
400408
#else
401409
#error "RTC not available for this architecture"
402410
#endif
@@ -548,6 +556,23 @@ unsigned long renesas_getRTC()
548556
}
549557
#endif
550558

559+
#ifdef ARDUINO_RASPBERRY_PI_PICO_W
560+
void pico_w_initRTC()
561+
{
562+
rtc.begin();
563+
}
564+
565+
void pico_w_setRTC(unsigned long time)
566+
{
567+
rtc.set(time);
568+
}
569+
570+
unsigned long pico_w_getRTC()
571+
{
572+
return rtc.get();
573+
}
574+
#endif
575+
551576
#endif /* HAS_NOTECARD */
552577

553578
/******************************************************************************

0 commit comments

Comments
 (0)