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>
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)
4545RTCMillis rtc;
4646#elif defined(ARDUINO_ARCH_SAMD)
4747RTCZero rtc;
@@ -89,6 +89,12 @@ void renesas_setRTC(unsigned long time);
8989unsigned 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