Skip to content

Commit d85a55c

Browse files
committed
Portenta C33: Add RTC support
1 parent a34ce91 commit d85a55c

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

Diff for: src/utility/time/TimeService.cpp

+36-3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
#include "RTCMillis.h"
3939
#endif
4040

41+
#ifdef ARDUINO_ARCH_RENESAS
42+
#include "RTC.h"
43+
#endif
44+
4145
/**************************************************************************************
4246
* GLOBAL VARIABLES
4347
**************************************************************************************/
@@ -86,6 +90,12 @@ void esp8266_setRTC(unsigned long time);
8690
unsigned long esp8266_getRTC();
8791
#endif
8892

93+
#ifdef ARDUINO_ARCH_RENESAS
94+
void renesas_initRTC();
95+
void renesas_setRTC(unsigned long time);
96+
unsigned long renesas_getRTC();
97+
#endif
98+
8999
/**************************************************************************************
90100
* CONSTANTS
91101
**************************************************************************************/
@@ -332,7 +342,8 @@ void TimeServiceClass::initRTC()
332342
esp32_initRTC();
333343
#elif defined (ARDUINO_ARCH_ESP8266)
334344
esp8266_initRTC();
335-
#elif defined (ARDUINO_PORTENTA_C33)
345+
#elif defined (ARDUINO_ARCH_RENESAS)
346+
renesas_initRTC();
336347
#else
337348
#error "RTC not available for this architecture"
338349
#endif
@@ -350,7 +361,8 @@ void TimeServiceClass::setRTC(unsigned long time)
350361
esp32_setRTC(time);
351362
#elif defined (ARDUINO_ARCH_ESP8266)
352363
esp8266_setRTC(time);
353-
#elif defined (ARDUINO_PORTENTA_C33)
364+
#elif defined (ARDUINO_ARCH_RENESAS)
365+
renesas_setRTC(time);
354366
#else
355367
#error "RTC not available for this architecture"
356368
#endif
@@ -368,7 +380,8 @@ unsigned long TimeServiceClass::getRTC()
368380
return esp32_getRTC();
369381
#elif defined (ARDUINO_ARCH_ESP8266)
370382
return esp8266_getRTC();
371-
#elif defined (ARDUINO_PORTENTA_C33)
383+
#elif defined (ARDUINO_ARCH_RENESAS)
384+
return renesas_getRTC();
372385
#else
373386
#error "RTC not available for this architecture"
374387
#endif
@@ -494,6 +507,26 @@ unsigned long esp8266_getRTC()
494507
}
495508
#endif
496509

510+
#ifdef ARDUINO_ARCH_RENESAS
511+
void renesas_initRTC()
512+
{
513+
RTC.begin();
514+
}
515+
516+
void renesas_setRTC(unsigned long time)
517+
{
518+
RTCTime t(time);
519+
RTC.setTime(t);
520+
}
521+
522+
unsigned long renesas_getRTC()
523+
{
524+
RTCTime t;
525+
RTC.getTime(t);
526+
return t.getUnixTime();
527+
}
528+
#endif
529+
497530
/******************************************************************************
498531
* EXTERN DEFINITION
499532
******************************************************************************/

0 commit comments

Comments
 (0)