Files

copied
Last update 7 years 9 months by Hu-Cheng Lee
FileslibraryTimeexamplesTimeTeensy3
..
TimeTeensy3.ino
TimeTeensy3.ino
/* * TimeRTC.pde * example code illustrating Time library with Real Time Clock. * */ #include <TimeLib.h> void setup() { // set the Time library to use Teensy 3.0's RTC to keep time setSyncProvider(getTeensy3Time); Serial.begin(115200); while (!Serial); // Wait for Arduino Serial Monitor to open delay(100); if (timeStatus()!= timeSet) { Serial.println("Unable to sync with the RTC"); } else { Serial.println("RTC has set the system time"); } } void loop() { if (Serial.available()) { time_t t = processSyncMessage(); if (t != 0) { Teensy3Clock.set(t); // set the RTC setTime(t); } } digitalClockDisplay(); delay(1000); } void digitalClockDisplay() { // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.print(" "); Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); } time_t getTeensy3Time() { return Teensy3Clock.get(); } /* code to process time sync messages from the serial port */ #define TIME_HEADER "T" // Header tag for serial time sync message unsigned long processSyncMessage() { unsigned long pctime = 0L; const unsigned long DEFAULT_TIME = 1357041600; // Jan 1 2013 if(Serial.find(TIME_HEADER)) { pctime = Serial.parseInt(); return pctime; if( pctime < DEFAULT_TIME) { // check the value is a valid time (greater than Jan 1 2013) pctime = 0L; // return 0 to indicate that the time is not valid } } return pctime; } void printDigits(int digits){ // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }
Report a bug