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/* *************************************************************************************
@@ -355,6 +361,8 @@ void TimeServiceClass::initRTC()
355361 esp8266_initRTC ();
356362#elif defined (ARDUINO_ARCH_RENESAS)
357363 renesas_initRTC ();
364+ #elif defined (ARDUINO_RASPBERRY_PI_PICO_W)
365+ pico_w_initRTC ();
358366#else
359367 #error "RTC not available for this architecture"
360368#endif
@@ -374,6 +382,8 @@ void TimeServiceClass::setRTC(unsigned long time)
374382 esp8266_setRTC (time);
375383#elif defined (ARDUINO_ARCH_RENESAS)
376384 renesas_setRTC (time);
385+ #elif defined (ARDUINO_RASPBERRY_PI_PICO_W)
386+ pico_w_setRTC (time);
377387#else
378388 #error "RTC not available for this architecture"
379389#endif
@@ -393,6 +403,8 @@ unsigned long TimeServiceClass::getRTC()
393403 return esp8266_getRTC ();
394404#elif defined (ARDUINO_ARCH_RENESAS)
395405 return renesas_getRTC ();
406+ #elif defined (ARDUINO_RASPBERRY_PI_PICO_W)
407+ return pico_w_getRTC ();
396408#else
397409 #error "RTC not available for this architecture"
398410#endif
@@ -544,6 +556,23 @@ unsigned long renesas_getRTC()
544556}
545557#endif
546558
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+
547576#endif /* HAS_NOTECARD */
548577
549578/* *****************************************************************************
0 commit comments