Проблема при работе с библиотекой DS1302.h
- Войдите на сайт для отправки комментариев
Пт, 20/04/2018 - 22:55
Я делаю будильник с помощью часов реального времени на микросхеме DS1302 используя билиотеку DS1302.h, мне нужно узнать день недели и время, и если они совпадают с задаными то запустить будильник, только вот день недели всегда почему-то отображается как еденица, то есть понедельник, снизу приведён кусок кода. Помогите пожалуйста.
#include <DS1302.h> DS1302 rtc(8, 7, 6); Time t; int dow1 = 5; int hour1 = 21; int min1 = 34; int dow2 = 5; int hour2 = 13; int min2 = 5; int dow3 = 5; int hour3 = 13; int min3 = 5; int dow4 = 5; int hour4 = 13; int min4 = 5; int dow5 = 1; int hour5 = 19; int min5 = 47; void setup() { rtc.halt(false); Serial.begin(9600); //rtc.setTime(21, 24, 30); //rtc.setDate(20, 4, 2018); } void loop() { if (millis() - last_time > 1000) { last_time = millis(); Serial.println(rtc.getTimeStr()); Serial.println(t.dow); } t = rtc.getTime(); if(t.dow == dow1 && t.hour == hour1 && min1==t.min || t.dow == dow2 && t.hour == hour2 && min2==t.min || t.dow == dow3 && t.hour == hour3 && min3==t.min || t.dow == dow4 && t.hour == hour4 && min4==t.min || t.dow == dow5 && t.hour == hour5 && min5==t.min){ } }
Только сейчас глядя на этот ужас
43
if
(t.dow == dow1 && t.hour == hour1 && min1==t.min || t.dow == dow2 && t.hour == hour2 && min2==t.min || t.dow == dow3 && t.hour == hour3 && min3==t.min || t.dow == dow4 && t.hour == hour4 && min4==t.min || t.dow == dow5 && t.hour == hour5 && min5==t.min){
44
45
}
я понял, что в class Time https://github.com/msparks/arduino-ds1302/blob/master/DS1302.h надо добавить несколько полезных методов . Например копирования и сравнения ;)))
Это да, но проблема то до сих пор не решена(
Мне сейчас не хочется переписывать всю библиотеку. Там надо PROGMEM запрягать, что бы хранить все контрольные точки времени. Перегрузку операторов == ,>=,<= . так что это еще не скоро.
На самом деле я новичёк, и не всё понимаю из того что вы пишете, но может вы можете мне что-то посоветовать?
Я попробую скачать другую версию библиотеки, вдруг поможет.
Не помогло.
На самом деле я новичёк, и не всё понимаю из того что вы пишете, но может вы можете мне что-то посоветовать?
А что вы можете, к примеру, посоветовать человеку, который не умеет плавать, но хочет переплыть реку?
На самом деле я новичёк, и не всё понимаю из того что вы пишете, но может вы можете мне что-то посоветовать?
А что вы можете, к примеру, посоветовать человеку, который не умеет плавать, но хочет переплыть реку?
Построить плот.
Всем спасибо за ответы, мне помогло добаввить в void setup строку
Всем спасибо за ответы, мне помогло добаввить в void setup строку
Теперь всегда субботу показывают?