PlatformIO package of the Teensy core framework compatible with GCC 10 & C++20
Nie możesz wybrać więcej, niż 25 tematów
Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
|
- /*
- * 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);
- }
|