Часы реального времени

Использование различных блоков часов
Ответить
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18.10.2017{, 20:18}
Репутация: 0

Часы реального времени

#1

Сообщение rusland57 » 02.11.2017{, 08:19}

Здравствуйте! Подскажите, кто знает.
Подключаю часы реального времени на микросхеме ds3231. Считываю в FLProg секунды (с помощью блока RTCGT) и вывожу их на семисегментные индикаторы на базе MAX7219.
Так вот, если физически модуль часов реального времени отсоединить от платы Arduino, то секунды продолжают идти и даже сбрасываются в ноль при достижении значения 60 с.
Как такое может быть? Откуда контроллер берёт данные?
С моей точки зрения при физическом отключении модуля индикатор должен или погаснуть или выводить постоянно последнее значение.
Вложения
__4.flp
(86.16 КБ) 64 скачивания
Последний раз редактировалось rusland57 02.11.2017{, 09:09}, всего редактировалось 1 раз.

rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18.10.2017{, 20:18}
Репутация: 0

Часы реального времени

#2

Сообщение rusland57 » 06.11.2017{, 07:43}

Отписываюсь, что в итоге выяснил.

Началось с того, что решил сделать часы с секундами. Использовал микросхему ds3231 (китайский аналог с обвязкой). Заметил, что секунды после синхронизации с другими часами (наручные Casio, системное время компьютера, сайт time100.ru) в течении минуты рассинхронизировались. Полным недоумением стало продолжение работы часов после физического отключения модуля от контроллера (о чём писал выше).
В итоге попробовал другой блок (DS3231  Get time,data (CODE).ubi), написанный, как я понял, пользователем hallozin, за что ему отдельное спасибо (даже вывод температуры есть)!

Решил вывести одновременно сигналы (секунды) с двух блоков на индикатор - в результате после сброса секунд очень быстро появляется рассинхронизация. Заметил, что рассинхронизация становится заметной уже в первые 20 секунд.
При физическом отключении модуля ds3231 (снимаю разъём с пинов SCL и SDA) время продолжает идти со стандартного блока RTCGT, а с пользовательского блока останавливается (в смысле, не поступает на индикатор, и он выводит последнее значение, что и должно быть, в принципе).

Из этого делаю вывод, что, скорее всего, блок RTCGT в FLProg работает не корректно.
Заметил, что в блоках используются разные библиотеки RTC.

P.S. Может я где-то ошибаюсь, поэтому выкладываю файлы тестового проекта и пользовательского блока.
Автору FLProg огромное спасибо за программу! Колоссальный труд, да ещё и бесплатно!
Вложения
DS3231_Get_time.ubi
(59.54 КБ) 74 скачивания
_ds3231.flp
(201.43 КБ) 86 скачиваний

Labu55
Сержант
Сообщения: 130
Зарегистрирован: 30.07.2017{, 12:22}
Репутация: 0

Часы реального времени

#3

Сообщение Labu55 » 07.11.2017{, 22:30}

rusland57 писал(а):недоумением стало продолжение работы часов после физического отключения модуля
Я о том же в сообщении №3

Добавлено (07.11.2017, 22:30)
---------------------------------------------
Labu55 писал(а):скорее всего, блок RTCGT в FLProg работает не корректно
А FLProg тут не при чём, такая используемая библиотека или все библиотеки RTC, которые мне встречались.
Последний раз редактировалось Labu55 07.11.2017{, 22:26}, всего редактировалось 1 раз.

rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18.10.2017{, 20:18}
Репутация: 0

Часы реального времени

#4

Сообщение rusland57 » 08.11.2017{, 19:22}

Labu55 писал(а):Я о том же в сообщении №3
Да, я когда столкнулся в проблемой, искал информацию и видел сообщение, но причиной у вас, как мне показалось, были разъёмы.
Labu55 писал(а):А FLProg тут не при чём, такая используемая библиотека или все библиотеки RTC, которые мне встречались.
Не все. Вот та библиотека, что использует hallozin в своём блоке, работает нормально. Я после выявления причины несколько дней тестировал (со 2-ого числа и до вчерашнего вечера) - часы идут хорошо (сравнивал с time100.ru) и сбоев не выявил. Я бы даже пожелал разработчику FLProg взять блок hallozinа за основу для RTC, тем более там и вывод температуры есть. Где конкретно ошибка в библиотеке сказать не могу, т.к. пока с С++ плохо дружу.

Ответить

Вернуться в «Часы реального времени»