Синхронизация mills() через esp-now

Sem553

✩✩✩✩✩✩✩
10 Янв 2021
91
8
Здравствуйте, подскажите, можно ли с первой на вторую esp8266 через esp-now отправить значения mills() и что бы вторая сделала синхронизацию у себя по первой (может бить отклонения на пару мкс) или нужно переменную делать на второй и связивать значение ?
 

bort707

★★★★★★✩
21 Сен 2020
3,062
912
хм... а в чем по вашему разница между этими вариантами? :)
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
@Sem553, если я правильно понял, Вы хотите добиться, чтобы в каждый момент времени значение, возвращаемое millis было одинаковым на обеих ESP8266? Вообще синхронизировать счёт времени микропроцессоров возможно, но это нужно делать постоянно, иначе разница в частотах задающих генераторов быстро сведёт Ваши усилия на нет. С моей точки зрения проще синхронизировать именно время.
 

Sem553

✩✩✩✩✩✩✩
10 Янв 2021
91
8
@poty, да, что бы было одинаково, они будут работать у меня до одного часа без перерыва, синхронизировать нужно с какой частотой, раз в 10 сек или 1 мин ?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,301
Москва
Это замечательный вопрос. А как быстро разбегаются значения ? а как точно вам надо ?
если вам надо 2 мкс, а убегает у вас на 10 в минуту, то достаточно синхронизировать скажем 10 раз в минуту (с запасом)
 

Kir

★✩✩✩✩✩✩
28 Мар 2020
69
16
@Sem553, Можно, но, не все так просто. Скажем просто принять новое значение с эталонного устройства, и применить это значение в подчиненном - идея не очень хорошая, т.к., если программа ориентируется на эти логические часы, поведение программы в таком случае может быть не предсказуемым. Обычно регулируют скорость инкремента собственных логических часов (через управление делителем частоты или величиной приращения), т.е. можно ускорить или замедлить "тиканье" логических часов, добиваясь нужной сходимости. Существуют протоколы для решения подобных задач, один из таких PTP. Однако достичь стабильной точности в ед. мкс через WiFi, мне кажется довольно амбициозной задачей.
 

Sem553

✩✩✩✩✩✩✩
10 Янв 2021
91
8
Но еще как вариант расматриваю возможность использовать ds1302 (модуль часов) на первой плате и на второй (предварительно модули будут синхронизированы), только мне нужно будет виводить милисекунды в сотах .00, а на данных модулях я так понял секунды ето минимум или есть вариант приписать милисекунды, подскажите пожалуйста
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
@Sem553, С точностью в пару мксек по bluetooth/wifi - не реально, у них джиттер в миллисекундах обычно измеряется.
По кабелю или какому нть радиоканалу - можно добиться.
А к чему такая большая точность?

К сведению, вот часы на сервере, постоянно синхронизируются по NTP, что то около раз-два в минуту.
Джиттер, обычно на уровне 0.5мсек, минимальное что видел около 0.15мсек на несколько часов.
И это по стабильному каналу через кабель, а не WiFi.
1650826226628.png
 
Изменено:

Sem553

✩✩✩✩✩✩✩
10 Янв 2021
91
8
@Геннадий П, понятно, спасибо, точность для того что бы в спорных вопросах можно было определить чей сигнал пришёл первый если придет в одну секунду), я вот начал смотреть в сторону часов реального времени, только вот думаю как туда прикрутить миллисекунды)