I want to be able to save the date and time for logging data, so I am learning how to use the RTC. I run this code:
// Date and time functions using just software, based on millis() & timer
#include <Arduino.h>
#include <Wire.h> // this #include still required because the RTClib depends on it
#include "RTClib.h"
#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
#define Serial SerialUSB
#endif
RTC_Millis rtc;
void setup () {
Serial.begin(9600);
// following line sets the RTC to the date & time this sketch was compiled
rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
void loop () {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
//Serial.print(" seconds since 1970: ");
//Serial.println(now.unixtime());
// calculate a date which is 7 days and 30 seconds into the future
//DateTime future (now.unixtime() + 7 * 86400L + 30);
//Serial.print(" now + 7d + 30s: ");
//Serial.print(future.year(), DEC);
//Serial.print('/');
//Serial.print(future.month(), DEC);
//Serial.print('/');
//Serial.print(future.day(), DEC);
//Serial.print(' ');
//Serial.print(future.hour(), DEC);
//erial.print(':');
//Serial.print(future.minute(), DEC);
//Serial.print(':');
//Serial.print(future.second(), DEC);
//Serial.println();
Serial.println();
delay(3000);
}
which is directly from the tutorial, and it works fine. It prints the current date and time. Then if I comment out the "rtc.begin(DateTime..." command it gives an erroneous date (2106?). I thought that once you put in the correct time, it is stored for future use. What is wrong? Thanks.