Arduino решение проблемы с точностью millis

preview_player
Показать описание
Если у вас отстает или убегает таймер на несколько секунд в час.

----------

✅---------- Посмотри другие рубрики канала
Рекомендации по теме
Комментарии
Автор

теперь мы знаем что не все ардуины одинаково плезны.... спасибо Кот!

rmpgirt
Автор

В режиме обучения тоже решил сделать часы-таймер. После проб и ошибок заметил одну особенность: миллисекунды в millis() пилятся не стабильно, т.е. интервал между секундами не всегда 1000 мСек, поэтому и ставится условие ”>=1000”, а не просто “==1000”. По факту интервал иногда превышает 1000 мСек на несколько мСек. Это можно увидеть, выведя переменную prevTime в монитор порта. Там будет видно, что через несколько равных значений в 1000 мСек проскакивает, например 1012, 1007, 1022 мСек. Поэтому и есть небольшие отставания. Почему так, я не знаю пока. Остальное зависит уже от кварца. Кстати, он у меня нормальный, но всё равно за 3 часа время отстаёт на 1 секунду. Частично это из-за вот этого неравномерного отсчета отрезков времени (я промониторил, за 3часа набежало 416 мСек ошибки.), остальное можно свалить на качество кварца.

serjioua
Автор

Спасибо, не знал. Возможно пригодится. На всех нанах стоят мелкие. Но на Уне и меге, повезло, большие.

lutsenko
Автор

Маленький кварц вроде со встроенными конденсаторами, это удобно. Насчёт точности хз.

Kolin