Files

copied
Last update 7 years 9 months by Hu-Cheng Lee
FileslibraryTimeexamplesTimeArduinoDue
..
TimeArduinoDue.ino
TimeArduinoDue.ino
/* * TimeRTC.pde * example code illustrating Time library with Real Time Clock. * * This example requires Markus Lange's Arduino Due RTC Library * https://github.com/MarkusLange/Arduino-Due-RTC-Library */ #include <TimeLib.h> #include <rtc_clock.h> // Select the Slowclock source //RTC_clock rtc_clock(RC); RTC_clock rtc_clock(XTAL); void setup() { Serial.begin(9600); rtc_clock.init(); if (rtc_clock.date_already_set() == 0) { // Unfortunately, the Arduino Due hardware does not seem to // be designed to maintain the RTC clock state when the // board resets. Markus described it thusly: "Uhh the Due // does reset with the NRSTB pin. This resets the full chip // with all backup regions including RTC, RTT and SC. Only // if the reset is done with the NRST pin will these regions // stay with their old values." rtc_clock.set_time(__TIME__); rtc_clock.set_date(__DATE__); // However, this might work on other unofficial SAM3X boards // with different reset circuitry than Arduino Due? } setSyncProvider(getArduinoDueTime); if(timeStatus()!= timeSet) Serial.println("Unable to sync with the RTC"); else Serial.println("RTC has set the system time"); } time_t getArduinoDueTime() { return rtc_clock.unixtime(); } void loop() { 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(); } 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