Часы на светодиодных матрицах с драйверами MAX7219
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Хотя я и противник такой искусственной коррекции, но всё же поддаюсь на многочисленные уговоры.
В архиве прошивка с поддержкой коррекции секунд. Величина коррекции задаётся в eeprom, пределы - ±50 секунд в сутки.
Как происходит коррекция:
- Если значение коррекции положительное, то в 0:00:00 каждые сутки к секундам прибавляется заданное в eeprom значение коррекции
- Если значение коррекции отрицательное, то в 23:59:59 от секунд отнимается заданное значение коррекции, при этом ставится флаг, что больше корректировать не нужно. Флаг снимается в 0:00:00. Это - чтобы избежать "вечной" коррекции времени назад.
Редактор EEPROM с поддержкой коррекции секунд можно пока взять на Dropbox.
Поскольку в железе у меня проверить это сейчас возможности нет, большая просьба проверить, как это всё работает.
Естественно, коррекция имеет смысл только когда часы включены. Если их выключить на сутки (или хотя бы около полуночи), естественно, никакой коррекции за эти сутки не произойдёт (основная причина, почему мне не хотелось вводить эту функцию).
В архиве прошивка с поддержкой коррекции секунд. Величина коррекции задаётся в eeprom, пределы - ±50 секунд в сутки.
Как происходит коррекция:
- Если значение коррекции положительное, то в 0:00:00 каждые сутки к секундам прибавляется заданное в eeprom значение коррекции
- Если значение коррекции отрицательное, то в 23:59:59 от секунд отнимается заданное значение коррекции, при этом ставится флаг, что больше корректировать не нужно. Флаг снимается в 0:00:00. Это - чтобы избежать "вечной" коррекции времени назад.
Редактор EEPROM с поддержкой коррекции секунд можно пока взять на Dropbox.
Поскольку в железе у меня проверить это сейчас возможности нет, большая просьба проверить, как это всё работает.
Естественно, коррекция имеет смысл только когда часы включены. Если их выключить на сутки (или хотя бы около полуночи), естественно, никакой коррекции за эти сутки не произойдёт (основная причина, почему мне не хотелось вводить эту функцию).
- Вложения
-
- matrixclock_sec_corr.7z
- (21.5 КБ) 320 скачиваний
- Реклама
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3321704#p3321704"]Хотя я и противник такой искусственной коррекции, но всё же поддаюсь на многочисленные уговоры.
В архиве прошивка с поддержкой коррекции секунд. Величина коррекции задаётся в eeprom, пределы - ±50 секунд в сутки.
Как происходит коррекция:
- Если значение коррекции положительное, то в 0:00:00 каждые сутки к секундам прибавляется заданное в eeprom значение коррекции
- Если значение коррекции отрицательное, то в 23:59:59 от секунд отнимается заданное значение коррекции, при этом ставится флаг, что больше корректировать не нужно. Флаг снимается в 0:00:00. Это - чтобы избежать "вечной" коррекции времени назад.
Редактор EEPROM с поддержкой коррекции секунд можно пока взять на Dropbox.
Поскольку в железе у меня проверить это сейчас возможности нет, большая просьба проверить, как это всё работает.
Естественно, коррекция имеет смысл только когда часы включены. Если их выключить на сутки (или хотя бы около полуночи), естественно, никакой коррекции за эти сутки не произойдёт (основная причина, почему мне не хотелось вводить эту функцию).[/uquote]
Значит я вычисляю разницу за сутки и записываю в eeprom . hex менять надо ?
буду пробовать , отпишусь.
Спасибо.
В архиве прошивка с поддержкой коррекции секунд. Величина коррекции задаётся в eeprom, пределы - ±50 секунд в сутки.
Как происходит коррекция:
- Если значение коррекции положительное, то в 0:00:00 каждые сутки к секундам прибавляется заданное в eeprom значение коррекции
- Если значение коррекции отрицательное, то в 23:59:59 от секунд отнимается заданное значение коррекции, при этом ставится флаг, что больше корректировать не нужно. Флаг снимается в 0:00:00. Это - чтобы избежать "вечной" коррекции времени назад.
Редактор EEPROM с поддержкой коррекции секунд можно пока взять на Dropbox.
Поскольку в железе у меня проверить это сейчас возможности нет, большая просьба проверить, как это всё работает.
Естественно, коррекция имеет смысл только когда часы включены. Если их выключить на сутки (или хотя бы около полуночи), естественно, никакой коррекции за эти сутки не произойдёт (основная причина, почему мне не хотелось вводить эту функцию).[/uquote]
Значит я вычисляю разницу за сутки и записываю в eeprom . hex менять надо ?
буду пробовать , отпишусь.
Спасибо.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Обновлённая прошивка во вложении к предыдущему посту.
Прошить один раз .hex, а уже eeprom (.bin), отредактировав предварительно - по необходимости.
Также прошу потестировать саму коррекцию. В смысле, настроить, например, на N секунд, прошить .bin EEPROM, выставить время 23:59 и посмотреть, происходит ли коррекция.
Прошить один раз .hex, а уже eeprom (.bin), отредактировав предварительно - по необходимости.
Также прошу потестировать саму коррекцию. В смысле, настроить, например, на N секунд, прошить .bin EEPROM, выставить время 23:59 и посмотреть, происходит ли коррекция.
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3321722#p3321722"]Обновлённая прошивка во вложении к предыдущему посту.
Прошить один раз .hex, а уже eeprom (.bin), отредактировав предварительно - по необходимости.
Также прошу потестировать саму коррекцию. В смысле, настроить, например, на N секунд, прошить .bin EEPROM, выставить время 23:59 и посмотреть, происходит ли коррекция.[/uquote]
перепрошил flash и eeprom.
выставил -5 секунд ; 23:59 , но при переходе на 00:00 визуально не заметил этой 5 секундной задержки.
я правильно понял алгоритм. или же эти -5 секунд появятся в следующие сутки?
Прошить один раз .hex, а уже eeprom (.bin), отредактировав предварительно - по необходимости.
Также прошу потестировать саму коррекцию. В смысле, настроить, например, на N секунд, прошить .bin EEPROM, выставить время 23:59 и посмотреть, происходит ли коррекция.[/uquote]
перепрошил flash и eeprom.
выставил -5 секунд ; 23:59 , но при переходе на 00:00 визуально не заметил этой 5 секундной задержки.
я правильно понял алгоритм. или же эти -5 секунд появятся в следующие сутки?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Добрался домой до железок. Вроде бы всё работает как задумано:
Спойлер
- Реклама
Re: Часы на светодиодных матрицах с драйверами MAX7219
Спойлер
И у меня все получилось , большое Вам спасибо.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Извратился по полной программе и втиснул-таки интерфейс для настройки коррекции прямо на часах, без перепрошивки EEPROM.
Вход в режим - длинным нажатием кнопки 3 входим в режим настройки яркости, повторным длинным нажатием - в режим настройки коррекции секунд. Доступный диапазон - ±55 секунд. Коррекция происходит ночью в 03:00:00, если в плюс или в 03:00:59, если в минус.
Проверяем, тестируем. Не забываем прошить новый EEPROM (появилась новая текстовая строчка). Если всё ОК, потом выложу на github в виде релиза.
Вход в режим - длинным нажатием кнопки 3 входим в режим настройки яркости, повторным длинным нажатием - в режим настройки коррекции секунд. Доступный диапазон - ±55 секунд. Коррекция происходит ночью в 03:00:00, если в плюс или в 03:00:59, если в минус.
Проверяем, тестируем. Не забываем прошить новый EEPROM (появилась новая текстовая строчка). Если всё ОК, потом выложу на github в виде релиза.
- Вложения
-
- matrixclock_sec_corr_3h_ui.7z
- (21.77 КБ) 338 скачиваний
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3322077#p3322077"]... втиснул-таки интерфейс для настройки коррекции прямо на часах, без перепрошивки EEPROM.[/uquote]
Отличная идея! Поддерживаю!
Вот только как быть, если точность хода 0,5 сек/сутки или меньше?
Отличная идея! Поддерживаю!
Вот только как быть, если точность хода 0,5 сек/сутки или меньше?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Радоваться такой точности.
Re: Часы на светодиодных матрицах с драйверами MAX7219
На самом деле даже коррекция в 0.5 сек/сутки - это очень грубо. Это неточность часов в 1,5 минуты за полгода.shutdown писал(а): Вот только как быть, если точность хода 0,5 сек/сутки или меньше?
Логичнее тогда ввести коррекцию не раз в сутки, а к примеру, раз в неделю, по воскресениям.
Будет точность на уровне 0.14 сек/сутки.
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3322077#p3322077"]Извратился по полной программе и втиснул-таки интерфейс для настройки коррекции прямо на часах, без перепрошивки EEPROM.
Вход в режим - длинным нажатием кнопки 3 входим в режим настройки яркости, повторным длинным нажатием - в режим настройки коррекции секунд. Доступный диапазон - ±55 секунд. Коррекция происходит ночью в 03:00:00, если в плюс или в 03:00:59, если в минус.
Проверяем, тестируем. Не забываем прошить новый EEPROM (появилась новая текстовая строчка). Если всё ОК, потом выложу на github в виде релиза.[/uquote]
Здравствуйте.
Тестил новую прошивку с коррекцией. В исходной версии все нормально , но при изменении параметров в редакторе ;
в закладке translations ; переписываю "в комнате" на "улица" , при входе в режим коррекции секунд появляются артефакты , и убираются перепрошивкой eeprom. Менять название мне надо , т.к. использую ds18b20 и bmp180, а при штатных названиях показывает" в комнате "и "снаружи" наоборот, в старых прошивках изменения выполнялись без глюков.
Вход в режим - длинным нажатием кнопки 3 входим в режим настройки яркости, повторным длинным нажатием - в режим настройки коррекции секунд. Доступный диапазон - ±55 секунд. Коррекция происходит ночью в 03:00:00, если в плюс или в 03:00:59, если в минус.
Проверяем, тестируем. Не забываем прошить новый EEPROM (появилась новая текстовая строчка). Если всё ОК, потом выложу на github в виде релиза.[/uquote]
Здравствуйте.
Тестил новую прошивку с коррекцией. В исходной версии все нормально , но при изменении параметров в редакторе ;
в закладке translations ; переписываю "в комнате" на "улица" , при входе в режим коррекции секунд появляются артефакты , и убираются перепрошивкой eeprom. Менять название мне надо , т.к. использую ds18b20 и bmp180, а при штатных названиях показывает" в комнате "и "снаружи" наоборот, в старых прошивках изменения выполнялись без глюков.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Нужен обновленный редактор eeprom, ссылку я давал чуть выше.
Корректировать можно только постоянное отклонение от нужной (32768Гц) частоты. Когда частота плавает в зависимости от температуры, ничего сделать уже нельзя. Ставьте DS3231, там это уже попытались решить.
Это очень точно. Это выше стабильности частоты кварца. В реальной жизни часы сегодня уйдут на секунду вперёд, а завтра будет открыта форточка, и они уйдут на секунду назад. Такое в принципе не поддаётся коррекции.hector писал(а):На самом деле даже коррекция в 0.5 сек/сутки - это очень грубо. Это неточность часов в 1,5 минуты за полгода
Корректировать можно только постоянное отклонение от нужной (32768Гц) частоты. Когда частота плавает в зависимости от температуры, ничего сделать уже нельзя. Ставьте DS3231, там это уже попытались решить.
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="vicfamily",url="/forum/viewtopic.php?p=3322236#p3322236"][uquote="WiseLord",url="/forum/viewtopic.php?p=3322077#p3322077"]Извратился по полной программе и втиснул-таки интерфейс для настройки коррекции прямо на часах, без перепрошивки EEPROM.
Вход в режим - длинным нажатием кнопки 3 входим в режим настройки яркости, повторным длинным нажатием - в режим настройки коррекции секунд. Доступный диапазон - ±55 секунд. Коррекция происходит ночью в 03:00:00, если в плюс или в 03:00:59, если в минус.
Проверяем, тестируем. Не забываем прошить новый EEPROM (появилась новая текстовая строчка). Если всё ОК, потом выложу на github в виде релиза.[/uquote]
Здравствуйте.
Тестил новую прошивку с коррекцией. В исходной версии все нормально , но при изменении параметров в редакторе ;
в закладке translations ; переписываю "в комнате" на "улица" , при входе в режим коррекции секунд появляются артефакты , и убираются перепрошивкой eeprom. Менять название мне надо , т.к. использую ds18b20 и bmp180, а при штатных названиях показывает" в комнате "и "снаружи" наоборот, в старых прошивках изменения выполнялись без глюков.[/uquote]
использовал новый редактор
Вход в режим - длинным нажатием кнопки 3 входим в режим настройки яркости, повторным длинным нажатием - в режим настройки коррекции секунд. Доступный диапазон - ±55 секунд. Коррекция происходит ночью в 03:00:00, если в плюс или в 03:00:59, если в минус.
Проверяем, тестируем. Не забываем прошить новый EEPROM (появилась новая текстовая строчка). Если всё ОК, потом выложу на github в виде релиза.[/uquote]
Здравствуйте.
Тестил новую прошивку с коррекцией. В исходной версии все нормально , но при изменении параметров в редакторе ;
в закладке translations ; переписываю "в комнате" на "улица" , при входе в режим коррекции секунд появляются артефакты , и убираются перепрошивкой eeprom. Менять название мне надо , т.к. использую ds18b20 и bmp180, а при штатных названиях показывает" в комнате "и "снаружи" наоборот, в старых прошивках изменения выполнялись без глюков.[/uquote]
использовал новый редактор
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3322310#p3322310"]Это очень точно. Это выше стабильности частоты кварца. В реальной жизни часы сегодня уйдут на секунду вперёд, а завтра будет открыта форточка, и они уйдут на секунду назад. Такое в принципе не поддаётся коррекции.
Корректировать можно только постоянное отклонение от нужной (32768Гц) частоты. Когда частота плавает в зависимости от температуры, ничего сделать уже нельзя. Ставьте DS3231, там это уже попытались решить.[/uquote]
Кварцы калибруют при температуре 25 градусов.
При понижении комнатной температуры с 25 до 15 градусов или повышении до 35 градусов - в обоих случаях будем иметь отставание порядка 0.4 сек/сутки.
При понижении комнатной температуры с 25 до 20 градусов или повышении до 30 градусов - в обоих случаях будем иметь отставание порядка 0.1 сек/сутки.
Не веришь - посмотри зависимость частоты часового кварца от температуры.
У меня много лет работают часы с возможностью коррекции 0.1 секунда/сутки. Последний раз я их настраивал на точный ход осенью, при переводе часов (четыре месяца назад).
Сегодня проверил - часы отстают от точного времени на 1 секунду. Установлена коррекция на отставание в 0.6 сек/сутки.
И ты будешь утверждать, что коррекции 1 сек/сутки достаточно??
Корректировать можно только постоянное отклонение от нужной (32768Гц) частоты. Когда частота плавает в зависимости от температуры, ничего сделать уже нельзя. Ставьте DS3231, там это уже попытались решить.[/uquote]
Кварцы калибруют при температуре 25 градусов.
При понижении комнатной температуры с 25 до 15 градусов или повышении до 35 градусов - в обоих случаях будем иметь отставание порядка 0.4 сек/сутки.
При понижении комнатной температуры с 25 до 20 градусов или повышении до 30 градусов - в обоих случаях будем иметь отставание порядка 0.1 сек/сутки.
Не веришь - посмотри зависимость частоты часового кварца от температуры.
У меня много лет работают часы с возможностью коррекции 0.1 секунда/сутки. Последний раз я их настраивал на точный ход осенью, при переводе часов (четыре месяца назад).
Сегодня проверил - часы отстают от точного времени на 1 секунду. Установлена коррекция на отставание в 0.6 сек/сутки.
И ты будешь утверждать, что коррекции 1 сек/сутки достаточно??
- Вложения
-
- untitled.jpg
- (34.29 КБ) 606 скачиваний
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3322436#p3322436"]Но вижу же, что нет.
Либо редактор не новый (без поддержки строчки коррекции секунд), либо eeprom старый ("яяяяяя" в этой строке):
[/uquote]
в редактированном дампе , в режиме коррекции секунд появляются артефакты
разобрался. действительно использовал старый редактор.
все работает как надо.
Спасибо.
Либо редактор не новый (без поддержки строчки коррекции секунд), либо eeprom старый ("яяяяяя" в этой строке):
в редактированном дампе , в режиме коррекции секунд появляются артефакты
разобрался. действительно использовал старый редактор.
все работает как надо.
Спасибо.
- Вложения
-
- редакция.JPG
- (157.69 КБ) 651 скачивание
-
- исходник.JPG
- (159.81 КБ) 618 скачиваний
Последний раз редактировалось vicfamily Вс мар 04, 2018 15:56:05, всего редактировалось 1 раз.
Re: Часы на светодиодных матрицах с драйверами MAX7219
[uquote="WiseLord",url="/forum/viewtopic.php?p=3322310#p3322310"]Ставьте DS3231, там это уже попытались решить.[/uquote]
Установлена именно DS3231. Точность хода, по сравнению с DS1307, гораздо выше, но не идеальная.
[uquote="hector",url="/forum/viewtopic.php?p=3322179#p3322179"]На самом деле даже коррекция в 0.5 сек/сутки - это очень грубо. Это неточность часов в 1,5 минуты за полгода.
Логичнее тогда ввести коррекцию не раз в сутки, а к примеру, раз в неделю, по воскресениям.[/uquote]
Согласен. Давно родилась такая мысль. Но кто ее реализует?
Установлена именно DS3231. Точность хода, по сравнению с DS1307, гораздо выше, но не идеальная.
[uquote="hector",url="/forum/viewtopic.php?p=3322179#p3322179"]На самом деле даже коррекция в 0.5 сек/сутки - это очень грубо. Это неточность часов в 1,5 минуты за полгода.
Логичнее тогда ввести коррекцию не раз в сутки, а к примеру, раз в неделю, по воскресениям.[/uquote]
Согласен. Давно родилась такая мысль. Но кто ее реализует?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Реализовать совершенно не проблема.
Сейчас логика такая: https://github.com/WiseLord/matrixclock ... lay.c#L458
Коррекция происходит в 3 часа и 00 минут каждый день. Никакой проблемы добавить ещё проверку на дату (скажем, каждое 1-е число месяца) или делать её только по воскресеньям.
Вопрос в том, что коль скоро при изменениях температуры комнате точность может плавать в пределах полусекунды в день, как пишет ув. hector, есть ли смысл в этом?
К тому же я просто не знаю, насколько плохи могут быть кварцы. Вот есть сейчас возможность регулировать в пределах ±55 секунд в сутки. Возможно, это слишком много, я даже не знаю. Возможно, даже самые худшие кварцы не уходят более чем на 5 секунд в сутки. Тогда оно бы и имело смысл делать эту коррекцию раз в неделю, например.
Но если корректировать настолько редко, то бОльшую часть этой недели показания будут неточными. А это тоже плохо.
Сейчас логика такая: https://github.com/WiseLord/matrixclock ... lay.c#L458
Коррекция происходит в 3 часа и 00 минут каждый день. Никакой проблемы добавить ещё проверку на дату (скажем, каждое 1-е число месяца) или делать её только по воскресеньям.
Вопрос в том, что коль скоро при изменениях температуры комнате точность может плавать в пределах полусекунды в день, как пишет ув. hector, есть ли смысл в этом?
К тому же я просто не знаю, насколько плохи могут быть кварцы. Вот есть сейчас возможность регулировать в пределах ±55 секунд в сутки. Возможно, это слишком много, я даже не знаю. Возможно, даже самые худшие кварцы не уходят более чем на 5 секунд в сутки. Тогда оно бы и имело смысл делать эту коррекцию раз в неделю, например.
Но если корректировать настолько редко, то бОльшую часть этой недели показания будут неточными. А это тоже плохо.
Re: Часы на светодиодных матрицах с драйверами MAX7219
Среднегодовая температура в квартирах (домах) людей умеренного пояса как правило находится в районе 25 градусов. Собственно именно поэтому в свое время решили делать резонаторы часов из среза кварца, стабильного при +25. У многих дома температура +15 ?? А +35??
Как я уже отметил, стабильность кварца в диапазоне 20...30 градусов порядка 0.1 сек/сутки.
Из вышесказанного вытекает очевидный факт наличия в часах возможности коррекции именно с точностью не хуже 0.1 сек/сутки для подстройки хода часов в диапазоне 20....30 градусов с указанной точностью.
З.Ы. на полсекунды в день часы отстанут, если у вас дома сейчас отключат отопление и температура упадет до +15. Но если верить синоптикам, то не за горами потепление.
Разумеется, никакой сквозняк в комнате сколь-нибудь существенно повлиять на среднесуточный ход часов не сможет (WiseLord необоснованно их боится
)
Как я уже отметил, стабильность кварца в диапазоне 20...30 градусов порядка 0.1 сек/сутки.
Из вышесказанного вытекает очевидный факт наличия в часах возможности коррекции именно с точностью не хуже 0.1 сек/сутки для подстройки хода часов в диапазоне 20....30 градусов с указанной точностью.
З.Ы. на полсекунды в день часы отстанут, если у вас дома сейчас отключат отопление и температура упадет до +15. Но если верить синоптикам, то не за горами потепление.
Разумеется, никакой сквозняк в комнате сколь-нибудь существенно повлиять на среднесуточный ход часов не сможет (WiseLord необоснованно их боится
- Вложения
-
- untitled.jpg
- (60.68 КБ) 539 скачиваний
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Часы на светодиодных матрицах с драйверами MAX7219
Ладно, уговорили. Будем считать, что на 8 секунд в сутки не уйдёт даже самый плохо откалиброванный кварц. Тогда коррекции ±55 секунд один раз в неделю будет достаточно.


