wieder einmal habe ich Verständnisfragen zu unten stehendem Code. Es ist der original Beispielsketch "DS1307RTC Read Test". Im Abschitt void loop() befindet sich gleich oben "tmElements_t tm;".
Und da waren sie, meine zwei Probleme:
1.) Ist das eine (lokale) Variable oder etwas Anderes? Ich vermute mal es ist eine Variable und es wird die Funktion (?) "tmElements_t" in "tm" "umbenannt", so das man statt "tmElements_t" nur noch "tm" aufrufen muß und der Code so übersichtlicher ist.
2.) Was ist "tmElements_t" für eine Funktion?
#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>
void setup() {
Serial.begin(9600);
while (!Serial) ; // wait for serial
delay(200);
Serial.println("DS1307RTC Read Test");
Serial.println("-------------------");
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
Serial.print("Ok, Time = ");
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
Serial.print(", Date (D/M/Y) = ");
Serial.print(tm.Day);
Serial.write('/');
Serial.print(tm.Month);
Serial.write('/');
Serial.print(tmYearToCalendar(tm.Year));
Serial.println();
} else {
if (RTC.chipPresent()) {
Serial.println("The DS1307 is stopped. Please run the SetTime");
Serial.println("example to initialize the time and begin running.");
Serial.println();
} else {
Serial.println("DS1307 read error! Please check the circuitry.");
Serial.println();
}
delay(9000);
}
delay(1000);
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}
Bin halt so ein blutiger Anfänger, ich wußte nicht mal richtig wo ich nachschauen sollte. Google hat in diesem Fall für mich unverständliche Ergebnisse geliefert.
Seht mir bitte nach das ich Termini, wie "Funktion" usw. manchmal nicht richtig verwende...
Es stellt sich die Frage, was Du eigentlich machen willst. Wenn Du beispielsweise nur Stunde und Minute benötigst geht das einfacher ohne Zeit-Bibliotheken. Beispiel.