Тут скорее дело в жележе мне несколько раз попадались DS1307 которые при подаче питания выдавали такую муть, все решается очень просто если при первом опросе часов сделать проверку секунд если значение больше 60 то просто их обнулять и все будет работать как положено. Если не понятно поже попробую выложить, с разрешения автора конечно. поправленный вариант.
Насчет секунд бить себя в грудь не буду, но пробывал еще в сыром устройстве установить ради эксперимента минуты в 60, и посмотреть, что откинет сей хитромудрый дЫвайс. И тут, на переходе с 59-й секунды на 00, вопреки всем моим наивным ожиданиям на защиту микросхемы от подобного рода вещей, минута с 60-и четко и безжалостно установилась в гордое
61.
Теперь, как я предполагаю, следуя всем канонам 8-разрядной цифровой техники, минуты должны были дойти до своего максимально возможного значения в 255, обнулиться и дальше все должно было пойти как положено. Этого я увы не проверял, но думаю, что именно так и было-бы.
Насчет секунд, так я думаю, что должна была повториться ситуация с минутами, но кто его знает, может компилер так накомпилил, или так и должно быть.
В програме, как я уже писал в статье все это дело проверяется перед установкой параметров времени и даты. Например, невозможно установить 29-е число в невысокосном году, так как устройство будет в таком случае тупо инкрементировать дни.
Проверку на превышение значения секунд больше 60 со старта не делал, так как при нормально начально настроенных часах этого не должно произойти.
Вообще эти часы очень капризные, после первичной стартовой инициализации они не хотят заводиться без начальной установки времени, и на этапе отладки в моем устройстве, когда на мгновение терялся контакт с батареей, часы останавливались (по даташиту, если батарея не используется, контакт микросхемы должен быть заземлен, а когда нет батареи и контакт разомкнут, часы тупо останавливаются).
Я для этого устройства, помнится, вроде бы еще вначале для отладки написал простенькую програмку для инициализации часов. Ее нужно один раз зашить в МК, и после запуска можно смело стирать. Програмка просто инициализирует часы определенным временем и параметрами работы, и в конце выводит сообщение на дисплей об успехе проведенной операции. Я ее прикреплю в конце.
Насчет разрешения автора выложить "поправленый вариант", то автор типО разрешает,
ВСЕМ! Выкладывая исходник своего длительного труда, я как-бы типО подразумевал, что каждый разбирающийся в программировании МК-AVR человек сможет извлечь для себя из этого проэкта что-то полезное либо в готовом варианте, либо в модифицированном под свои нужды.
Так что пользуйтесь на здоровье, модифицируйте и выкладывайте, но давайте уж постараемся чтобы не было путаницы.! Во.
2Игорь Владимирович, есть идея/предложения добавить отключение контроля, очень полезно для 2-х контурных котлов например когда надо набрать ванну горячей воды в максимально короткое время.
Можно, но не нужно!
У любого современного 2-х контурного котла автоматика реализована с
ПРИОРИТЕТОМ ПО ГОРЯЧЕМУ ВОДОСНАБЖЕНИЮ!Если во время того, как котел работает на нагрев системы отопления, вы открываете кран горячей воды, датчик протока мгновенно дает котлу команду на переключение трехходового клапана на циркуляцию теплоносителя по вторичному водо-водяному теплобменнику для приготовления горячей воды, а запрос отопления при этом игнорируется. То есть ванна будет набираться нормально вне зависимости от запросов термостата.
Я описал для наиболее распространенных котлов с трехходовым клапаном. Есть еще и другие но и для них приоритет по горячему водоснабжению никто не отменял.

Ну а у кого котел уникальный, и не работает так, как описано выше, то можно просто временно уменьшить температуру помещения, а то и вовсе включить ручной режим термостата.