18.5# Serial.println(currentTime);
В loop’е это присвоение.
Глянь выше что пишу
Не знаю, что он говорит, но конструкция неверная.
Что я зря старый комент удалил? Что в сериал при
Первоначальной конструкции выводит?
Этой вот
В разобранном виде, система не работает, а в собранном в стенде 380в.
Я туда отказываюсь телефон подключать
Так такое надо на малоточке опробовать.
Какой то больной гений собирал часы на 555, с кучей логики.
Что бы время выставить нужно было полдня кнопку нажимать.
А в качестве автономного питания стоял аккумулятор от УПСа, который в итоге благополучно помер от старости.
Все выкинул оттуда нахер, прицепил полумертвую дуню (часть пинов сгоревших) , которая берет время с RTC и пинает древнюю отечественную часовую логику.
Ну ещё из-за прожорливых диодов управляются они батареей кт315.(по 7шт на регистр)
В нужное время пиликает буззером.
Работало 4 года, потом пришло время менять cr2032, ну заодно решил и прошивку обновить.
Мои глупые мысли только в том, что операции выполняются не так как ты хочешь, а 3480 не является корнем двойки.
Это будет работать только если секунды изменяются от 0 до 3600.
Сначало надо взять остаток от s=currentTime%3600;
, а уж потом условие if(s%3480==0)
И не захочет. Она работает не на каждую 58-ую минуту часа, а на каждые 58 минут.
На самом первом часе сработает правильно, на втором уйдёт на 2 минуты (сработает на 56-ую минуту часа, потом на 54-ую и т.д. Раз в 30 часов будет срабатывать правильно.
Кстати, не понял почему в одной строке <=2, а в другой <=1.
Так как Вы сделали - нормально. Но, если Вам уж так хочется обфусцировать код, напишите
if (currentTime % 3600 % 3480)<=1)
тогда нормально всё должно быть, но это извращение.
Почему так ?
Без пояснительной бригады не пойму
currentTime время в секундах.
1671126586 на данный момент.
Из этого получаем остаток при делении на 3600(один час)
В начале каждого часа есть сигнал.
Берём отсаток при делении на 3480 (58минут), нет сигнала.
Упс, все дошло.
3600 будет кратно значению hour() в пересчёте на секунды, а 3480 , будет хер пойми когда
А чего тут понимать. Давайте посчитаем когда ct % 3480 будет равно 0? Поехали. Просто считаем на калькуляторе:
1 3480 - 0:58
2 6960 - 1:56
3 10440 - 2:54
4 13920 - 3:52
5 17400 - 4:50
6 20880 - 5:48
7 24360 - 6:46
8 27840 - 7:44
9 31320 - 8:42
10 34800 - 9:40
11 38280 - 10:38
12 41760 - 11:36
Вот оно Ваше уплывание на 2 минуты каждый час.
Количество открывающих скобок не совпадает с количеством закрывающих.
Поправил, но это не оно.
В чем причина, уже написано