как найти разницу дат и времени для Ардуино?
Есть таймер DS1307 + Ардуино = Прибор
Прибор включается подачей питания (на секунду) с кнопочки и выключается при ее отжимании.
Таймер злостно врет, следовательно при включении прибора надо вычислить погрешность, и при чтении времени из таймера добавлять ее к результату.
Вот какое решение пришло мне:
Первая инициализация прибора:
1)получить время (T.old) из ПК и записать его в таймер DS1307
2) записать T.old в энергонезависимую память таймера
Штатное включение прибора (как правило на 1 сек):
Инициализация прибора:
3)при включении прибора считать сохраненное время T.old из енергонезависимых регистров таймера и считать текущее время T.suc из таймера.
4) найти разницу Dt (например в минутах, или часах) Dt= T.suc - T.old
5) пропорционально разности времени, вычислить поправку K , которую вводить при каждом считывании текущего времени из таймера.
Поправка сначала расчитывается экспериментальным путем, т.е синхронизируется время таймера с ПК, а через сутки смотрим насколько убежал таймер. Соответственно можно понять на сколько таймер убегает например за минуту или час. С этим проблем нету.
Вопрос стал, как расчитать разницу дат D.t, в минутах? Готовых библиотек нету, а когда попытаться продумать алгоритм расчета D.t - начал кипеть мозг.
Может есть другие решения?
Есть таймер DS1307 + Ардуино = Прибор
Прибор включается подачей питания (на секунду) с кнопочки и выключается при ее отжимании.
Таймер злостно врет, следовательно при включении прибора надо вычислить погрешность, и при чтении времени из таймера добавлять ее к результату.
Вот какое решение пришло мне:
Первая инициализация прибора:
1)получить время (T.old) из ПК и записать его в таймер DS1307
2) записать T.old в энергонезависимую память таймера
Штатное включение прибора (как правило на 1 сек):
Инициализация прибора:
3)при включении прибора считать сохраненное время T.old из енергонезависимых регистров таймера и считать текущее время T.suc из таймера.
4) найти разницу Dt (например в минутах, или часах) Dt= T.suc - T.old
5) пропорционально разности времени, вычислить поправку K , которую вводить при каждом считывании текущего времени из таймера.
Поправка сначала расчитывается экспериментальным путем, т.е синхронизируется время таймера с ПК, а через сутки смотрим насколько убежал таймер. Соответственно можно понять на сколько таймер убегает например за минуту или час. С этим проблем нету.
Вопрос стал, как расчитать разницу дат D.t, в минутах? Готовых библиотек нету, а когда попытаться продумать алгоритм расчета D.t - начал кипеть мозг.
Может есть другие решения?
