Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0927139

Browse files
split RTC RPC example
1 parent d8b0da5 commit 0927139

File tree

1 file changed

+47
-93
lines changed
  • content/hardware/10.mega/boards/giga-r1-wifi/tutorials/giga-dual-core

1 file changed

+47
-93
lines changed

‎content/hardware/10.mega/boards/giga-r1-wifi/tutorials/giga-dual-core/giga-dual-core.md‎

Lines changed: 47 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -562,130 +562,84 @@ int servoMove(int angle) {
562562

563563
This example demonstrates how the RTC can be accessed from the M4:
564564

565-
Each example is written as a **single sketch** intended to be uploaded to **both cores**.
566-
567565
**M4 sketch:**
568566
```arduino
567+
/**
568+
* Initial author: Henatu (https://forum.arduino.cc/u/henatu/summary)
569+
* modified 03 December 2024
570+
* by Hannes Siebeneicher
571+
*/
572+
569573
#include "mbed.h"
570574
#include <mbed_mktime.h>
571575
#include "RPC.h"
572576
573-
constexpr unsigned long printInterval{ 1000 };
574-
unsigned long printNow{};
577+
constexpr unsigned long printInterval{ 1000 };
578+
unsigned long printNow{};
575579
576580
void setup() {
577-
RPC.begin();
578-
if (RPC.cpu_id() == CM7_CPUID) {
579-
Serial.begin(19200);
580-
while (!Serial) {
581-
; // Wait for Serial (USB) connection
582-
}
583-
Serial.println("M7: Serial connection initiated");
584-
} else {
585-
//RTCset() //Uncomment if you need to set the RTC for the first time.
586-
RPC.println("M4: Reading the RTC.");
587-
}
581+
if (RPC.begin()) {
582+
RPC.println("M4: Reading the RTC.");
583+
//RTCset() //Uncomment if you need to set the RTC for the first time.
584+
}
588585
}
589586
590587
void loop() {
591-
if (RPC.cpu_id() == CM7_CPUID) {
592-
if (RPC.available()) {
593-
char incomingByte = RPC.read(); // Read byte from RPC
594-
Serial.write(incomingByte); // Forward the byte to Serial (USB)
595-
}
596-
}
597-
else
598-
{
599-
if (millis() > printNow) {
600-
RPC.print("M4 System Clock: ");
601-
RPC.println(getLocaltime());
602-
printNow = millis() + printInterval;
603-
}
604-
}
588+
if (millis() > printNow) {
589+
RPC.print("M4 System Clock: ");
590+
RPC.println(getLocaltime());
591+
printNow = millis() + printInterval;
592+
}
605593
}
606594
607-
String getLocaltime()
608-
{
609-
char buffer[32];
610-
tm t;
611-
_rtc_localtime(time(NULL), &t, RTC_4_YEAR_LEAP_YEAR_SUPPORT);
612-
strftime(buffer, 32, "%Y-%m-%d %k:%M:%S", &t);
613-
return String(buffer);
595+
String getLocaltime() {
596+
char buffer[32];
597+
tm t;
598+
_rtc_localtime(time(NULL), &t, RTC_4_YEAR_LEAP_YEAR_SUPPORT);
599+
strftime(buffer, 32, "%Y-%m-%d %k:%M:%S", &t);
600+
return String(buffer);
614601
}
615602
616603
void RTCset() // Set cpu RTC
617-
{
604+
{
618605
tm t;
619-
t.tm_sec = (0); // 0-59
620-
t.tm_min = (58); // 0-59
621-
t.tm_hour = (11); // 0-23
622-
t.tm_mday = (1); // 1-31
623-
t.tm_mon = (9); // 0-11 "0" = Jan, -1
624-
t.tm_year = ((24)+100); // year since 1900, current year + 100 + 1900 = correct year
625-
set_time(mktime(&t)); // set RTC clock
606+
t.tm_sec = (0); // 0-59
607+
t.tm_min = (58); // 0-59
608+
t.tm_hour = (11); // 0-23
609+
t.tm_mday = (1); // 1-31
610+
t.tm_mon = (9); // 0-11 "0" = Jan, -1
611+
t.tm_year = ((24) + 100); // year since 1900, current year + 100 + 1900 = correct year
612+
set_time(mktime(&t)); // set RTC clock
626613
}
627614
```
628615

629616
**M7 sketch:**
630617
```arduino
618+
/**
619+
* Initial author: Henatu (https://forum.arduino.cc/u/henatu/summary)
620+
* modified 03 December 2024
621+
* by Hannes Siebeneicher
622+
*/
623+
631624
#include "mbed.h"
632-
#include <mbed_mktime.h>
633625
#include "RPC.h"
634626
635-
constexpr unsigned long printInterval { 1000 };
636-
unsigned long printNow {};
637-
638627
void setup() {
639-
RPC.begin();
640-
if (RPC.cpu_id() == CM7_CPUID) {
641-
Serial.begin(19200);
642-
while (!Serial) {
643-
; // Wait for Serial (USB) connection
644-
}
645-
Serial.println("M7: Serial connection initiated");
646-
} else {
647-
//RTCset() //Uncomment if you need to set the RTC for the first time.
648-
RPC.println("M4: Reading the RTC.");
649-
}
628+
RPC.begin();
629+
Serial.begin(9600);
630+
while (!Serial) {
631+
; // Wait for Serial (USB) connection
632+
}
633+
Serial.println("M7: Serial connection initiated");
650634
}
651635
652636
void loop() {
653-
if (RPC.cpu_id() == CM7_CPUID) {
654-
if (RPC.available()) {
655-
char incomingByte = RPC.read(); // Read byte from RPC
656-
Serial.write(incomingByte); // Forward the byte to Serial (USB)
657-
}
658-
}
659-
else
660-
{
661-
if (millis() > printNow) {
662-
RPC.print("M4 System Clock: ");
663-
RPC.println(getLocaltime());
664-
printNow = millis() + printInterval;
665-
}
666-
}
667-
}
668-
669-
String getLocaltime()
670-
{
671-
char buffer[32];
672-
tm t;
673-
_rtc_localtime(time(NULL), &t, RTC_4_YEAR_LEAP_YEAR_SUPPORT);
674-
strftime(buffer, 32, "%Y-%m-%d %k:%M:%S", &t);
675-
return String(buffer);
637+
if (RPC.available()) {
638+
char incomingByte = RPC.read(); // Read byte from RPC
639+
Serial.write(incomingByte); // Forward the byte to Serial (USB)
640+
}
676641
}
677642
678-
void RTCset() // Set cpu RTC
679-
{
680-
tm t;
681-
t.tm_sec = (0); // 0-59
682-
t.tm_min = (58); // 0-59
683-
t.tm_hour = (11); // 0-23
684-
t.tm_mday = (1); // 1-31
685-
t.tm_mon = (9); // 0-11 "0" = Jan, -1
686-
t.tm_year = ((24)+100); // year since 1900, current year + 100 + 1900 = correct year
687-
set_time(mktime(&t)); // set RTC clock
688-
}
689643
```
690644

691645
### MicroPython RPC LED

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /