Time/Dat Problem

Hallo!
Ich versuche als Anfänger die Zeit und das Datum seriellen Monitor anzuzeigen.
Leider kommt beim Kompilieren eine undefinierte Fehlermeldung.
Gibt es evtl. eine andere einfache Möglichkeit die Funktion TimeDat zu nutzen?
Ich bitte um Hilfe.


Arduino: 1.6.6 (Windows 7), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

WARNUNG: Bibliothek RTCZero behauptet auf [samd] Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf [avr] Architektur(en) ausgeführt wird.
In file included from C:\Users\GR\Documents\Ausgang\RTCZero_rtc\RTCZero_rtc.ino:17:0:

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:32:26: error: 'RTC_MODE2_MASK_SEL_OFF_Val' was not declared in this scope

MATCH_OFF = RTC_MODE2_MASK_SEL_OFF_Val, // Never

^

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:33:26: error: 'RTC_MODE2_MASK_SEL_SS_Val' was not declared in this scope

MATCH_SS = RTC_MODE2_MASK_SEL_SS_Val, // Every Minute

^

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:34:26: error: 'RTC_MODE2_MASK_SEL_MMSS_Val' was not declared in this scope

MATCH_MMSS = RTC_MODE2_MASK_SEL_MMSS_Val, // Every Hour

^

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:35:26: error: 'RTC_MODE2_MASK_SEL_HHMMSS_Val' was not declared in this scope

MATCH_HHMMSS = RTC_MODE2_MASK_SEL_HHMMSS_Val, // Every Day

^

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:36:26: error: 'RTC_MODE2_MASK_SEL_DDHHMMSS_Val' was not declared in this scope

MATCH_DHHMMSS = RTC_MODE2_MASK_SEL_DDHHMMSS_Val, // Every Month

^

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:37:26: error: 'RTC_MODE2_MASK_SEL_MMDDHHMMSS_Val' was not declared in this scope

MATCH_MMDDHHMMSS = RTC_MODE2_MASK_SEL_MMDDHHMMSS_Val, // Every Year

^

C:\Users\GR\Documents\Arduino\libraries\RTCZero\src/RTCZero.h:38:26: error: 'RTC_MODE2_MASK_SEL_YYMMDDHHMMSS_Val' was not declared in this scope

MATCH_YYMMDDHHMMSS = RTC_MODE2_MASK_SEL_YYMMDDHHMMSS_Val // Once, on a specific date and a specific time

^

C:\Users\GR\Documents\Ausgang\RTCZero_rtc\RTCZero_rtc.ino: In function 'void setup()':

RTCZero_rtc:36: error: 'rtc' was not declared in this scope

rtc.begin(); // initialize RTC

^

C:\Users\GR\Documents\Ausgang\RTCZero_rtc\RTCZero_rtc.ino: In function 'void loop()':

RTCZero_rtc:56: error: 'rtc' was not declared in this scope

Serial.print(rtc.getDay());

^

exit status 1
'rtc' was not declared in this scope

Dieser Report hätte mehr Informationen mit
"Ausführliche Ausgabe während der Kompilierung"
aktiviert in Datei > Einstellungen.

RTCZero_rtc.ino (1.35 KB)

Arduino: 1.6.6 (Windows 7), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Und in der Beschreibung zur Bibliothe RTCZero heißt es:

The RTC library enables an Arduino Zero or MKR1000 board to take control of the internal RTC.

Der Arduino Zero scheint eine interne RTC zu haben, die dein Mega 2560 eben nicht hat.

Ich vermute, es liegt an der IDE-Version 1.6.6, die ist sehr buggi.

Nimm die V 1.6.5, die läuft fehlerfrei.

GR-Ill:
Ich versuche als Anfänger die Zeit und das Datum seriellen Monitor anzuzeigen.

Woher kommt denn die Zeit? Welche Hardware nutzt Du?

sth77:
Und in der Beschreibung zur Bibliothe RTCZero heißt es:
Der Arduino Zero scheint eine interne RTC zu haben, die dein Mega 2560 eben nicht hat.

Ich bin davon ausgegangen, dass in jedem ARDUINO sowas wie eine Uhr drin ist, siehe:

Und was steht da?

This library allows an Arduino Zero or MKR1000 board

Zero. Nicht UNO oder Mega

Ich bin davon ausgegangen, dass in jedem ARDUINO sowas wie eine Uhr drin ist, siehe:
RTCZero - Arduino Reference

WARNUNG: Bibliothek RTCZero behauptet auf [samd] Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf [avr] Architektur(en) ausgeführt wird.

So gute Fehlermeldungen findest du nicht immer.

Echte Probleme sind die, bei denen man (erst) gar nicht merkt, dass man ein Problem hat :wink:

GR-Ill:
Ich bin davon ausgegangen, dass in jedem ARDUINO sowas wie eine Uhr drin ist, siehe:
RTCZero - Arduino Reference

Nein. Die allermeisten haben keine RTC. Du mußt eine anschließen. Die DS3231 ist eine der genaueren.
Grüße Uwe

i.O. alles klar.
Danke!

GR-Ill:
Ich bin davon ausgegangen, dass in jedem ARDUINO sowas wie eine Uhr drin ist, siehe:
RTCZero - Arduino Reference

In der von Dir verlinkten Referenzseite steht aber nur was vom ZERO Board.

Meines Wissens nach hat allerdings auch das DUE-Board eine Onboard-RTC, die man benutzen kann. Funktioniert natürlich ganz anders als beim ZERO. Und ob die Backup-Batteriepufferung beim DUE genau so funktioniert wie beim ZERO, bin ich mir auch nicht sicher, darüber habe ich noch nirgends was gesehen.

Von den mit 8-Bit Atmega-Controllern ausgerstatteten Arduino-Boards hat jedenfalls kein einziges eine RTC on-board, die müßtest Du durch die Bank allesamt mit einem externen RTC-Modul nachrüsten, um eine RTC zu haben. Und diese anderen RTC-Module wären dann auf jeden Fall auch mit einer passenden Library oder geeigneten Funktionsaufrufen anzusteuern UND NICHT mit einer "RTCZero" Library.

Bei den AVRs kann man theoretisch Timer2 mit einem Uhrenquarz versehen. Das hat aber eher historische Bedeutung. Damit ist man dann auf DS1307 Niveau. Bei der leichten Verfügbarkeit von RTC Modulen heutzutage bringt das nichts.