часы DS1302 возможности
- Войдите на сайт для отправки комментариев
Вс, 16/04/2017 - 22:34
Всем привет!
Сегодня впервые попали в руки часы DS1302. Дату установил, в сериал выводится и это хорошо.
Подскажите:
1. как записать дату в переменную?
2. Есть ли операторы сравнения раньше или позже или надо по отдельности сравнивать каждое значение начиная с года?
Сейчас использую вот такой скетч из примера:
// Example sketch for interfacing with the DS1302 timekeeping chip. // // Copyright (c) 2009, Matt Sparks // All rights reserved. // // http://quadpoint.org/projects/arduino-ds1302 #include <stdio.h> #include <DS1302.h> namespace { // Set the appropriate digital I/O pin connections. These are the pin // assignments for the Arduino as well for as the DS1302 chip. See the DS1302 // datasheet: // // http://datasheets.maximintegrated.com/en/ds/DS1302.pdf const int kCePin = 5; // Chip Enable const int kIoPin = 6; // Input/Output const int kSclkPin = 7; // Serial Clock // Create a DS1302 object. DS1302 rtc(kCePin, kIoPin, kSclkPin); String dayAsString(const Time::Day day) { switch (day) { case Time::kSunday: return "Sunday"; case Time::kMonday: return "Monday"; case Time::kTuesday: return "Tuesday"; case Time::kWednesday: return "Wednesday"; case Time::kThursday: return "Thursday"; case Time::kFriday: return "Friday"; case Time::kSaturday: return "Saturday"; } return "(unknown day)"; } void printTime() { // Get the current time and date from the chip. Time t = rtc.time(); // Name the day of the week. const String day = dayAsString(t.day); // Format the time and date and insert into the temporary buffer. char buf[50]; snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d", day.c_str(), t.yr, t.mon, t.date, t.hr, t.min, t.sec); // Print the formatted string to serial so we can see the time. Serial.println(buf); } } // namespace void setup() { Serial.begin(9600); // Initialize a new chip by turning off write protection and clearing the // clock halt flag. These methods needn't always be called. See the DS1302 // datasheet for details. rtc.writeProtect(false); rtc.halt(false); // Make a new time object to set the date and time. // Sunday, September 22, 2013 at 01:38:50. // Time t(2017, 4, 16, 21, 14, 50, Time::kSunday); // Set the time and date on the chip. // rtc.time(t); } // Loop and print the time every second. void loop() { printTime(); delay(1000); }