SergeyK, самая последняя прошивка пару сообщениями выше. Что касаемо корректировки. Синхронизация да, по спутнику, но есть нюанс, спутник посылает сигнал скажем в 0:0:00, а до земли он прибывает в 0:00:05, потому и введена корректировка в -5 секунд
Часы "МЕРКУРИЙ-40xА"
- vitalyadm
- Мучитель микросхем
- Сообщения: 433
- Зарегистрирован: Пт янв 14, 2011 13:27:12
- Откуда: Калуга
Re: Часы "МЕРКУРИЙ-40xА"
Mr.Pupkin, давайте чтоб мне голову не ломать, скажите на каком разряде должен быть сегмент DP, а на каких разрядах нет. И тогда всё сделаем.
SergeyK, самая последняя прошивка пару сообщениями выше. Что касаемо корректировки. Синхронизация да, по спутнику, но есть нюанс, спутник посылает сигнал скажем в 0:0:00, а до земли он прибывает в 0:00:05, потому и введена корректировка в -5 секунд
Теоретически, должно быть наоборот, отставание, но народ утверждает и совершенно аргументированно доказывает, что в строке со временем от спутника +5 секунд от реальности. Как так получается, честно, сам до конца не разобрался, но исходя из малой инфорции вычитанной в инете, заморочка связана с временем прохода сигнала от спутника до земли. Кто объяснит более подробно, буду только благодарен. Пардон, дико не удобно писать сообщения с телефона, поэтому кусками выходит.
SergeyK, самая последняя прошивка пару сообщениями выше. Что касаемо корректировки. Синхронизация да, по спутнику, но есть нюанс, спутник посылает сигнал скажем в 0:0:00, а до земли он прибывает в 0:00:05, потому и введена корректировка в -5 секунд
-
Mr.Pupkin
- Мучитель микросхем
- Сообщения: 432
- Зарегистрирован: Ср янв 02, 2013 20:56:57
- Откуда: близ Казани
Re: Часы "МЕРКУРИЙ-40xА"
Пожалуйста под такой индикатор ОК, который без двоеточия в середине! 
Re: Часы "МЕРКУРИЙ-40xА"
Собрал другие часы, в которых время с GPS берётся с модуля по строке спутника $GPGGA.
https://datagor.ru/microcontrollers/187 ... k-gps.html
Часы идут секунда в секунду. Синхронизация проходит очень быстро.
В часах Меркурий первой версии с разными прошивками время то на 10 секунд, то на 5 секунд не совпадает. В последней версии прошивки отстают на 2 секунды.
https://datagor.ru/microcontrollers/187 ... k-gps.html
Часы идут секунда в секунду. Синхронизация проходит очень быстро.
В часах Меркурий первой версии с разными прошивками время то на 10 секунд, то на 5 секунд не совпадает. В последней версии прошивки отстают на 2 секунды.
-
Mr.Pupkin
- Мучитель микросхем
- Сообщения: 432
- Зарегистрирован: Ср янв 02, 2013 20:56:57
- Откуда: близ Казани
Re: Часы "МЕРКУРИЙ-40xА"
Залил прошивку для индикатора БЕЗ ДВОЕТОЧИЯ, с ОБЩИМ КАТОДОМ! Наблюдаю, вроде всё нормально! Неделю наблюдал-сравнивал атмосферное давление на часах с образцовом барометром! Различие было две еденицы (775 и 777 мм.рт.ст.), после падения атмосферного давления ниже 770мм.рт.ст., разница была 1 мм.рт.ст.! Показания снимал 3 раза в день. Если брать погрешность образцового барометра, + погрешность BMP-180, то с давлением всё - ok!
По датчику температуры отдельная песня. Брал образцовый термометр. Сравнил показания. В часах завышал на 2°C. Попытался с наскоку корректировать! Датчик t на BMP-180 очень инерционен! Кончилось тем, на ночь часы и образцовый терм. поместил в одну ёмкость, а утром откорректировал по образцовому.( -1,4°C получилось). Кстати! Использовал выносной блок питания! Мне кажется лучше использовать такой, а то показания t будут завышены, если в корпусе часы будут.
Выражаю благодарность автору за проект и помощь в наладке! На мой взгляд конструкция самодостаточная...
По датчику температуры отдельная песня. Брал образцовый термометр. Сравнил показания. В часах завышал на 2°C. Попытался с наскоку корректировать! Датчик t на BMP-180 очень инерционен! Кончилось тем, на ночь часы и образцовый терм. поместил в одну ёмкость, а утром откорректировал по образцовому.( -1,4°C получилось). Кстати! Использовал выносной блок питания! Мне кажется лучше использовать такой, а то показания t будут завышены, если в корпусе часы будут.
Выражаю благодарность автору за проект и помощь в наладке! На мой взгляд конструкция самодостаточная...
- SergeyK
- Говорящий с текстолитом
- Сообщения: 1511
- Зарегистрирован: Вт апр 21, 2009 20:52:29
- Откуда: ХМАО Югра Белоярский
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
Сколько по времени занимает поиск спутников при первом включении? Собрал прошил. Включил. Уже полчаса висит на окне и идет поиск спутников(((((
И еще какой бы эффект не включил светятся все светики на кольце(((( Хотя когда идет поиск спутников кольцо светится как на видео!!!
Что то должно валится в терминалку с модуля GPS????
И еще какой бы эффект не включил светятся все светики на кольце(((( Хотя когда идет поиск спутников кольцо светится как на видео!!!
Что то должно валится в терминалку с модуля GPS????
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Делай всегда хорошо, а хреново и так получится!!!!!
-
Mr.Pupkin
- Мучитель микросхем
- Сообщения: 432
- Зарегистрирован: Ср янв 02, 2013 20:56:57
- Откуда: близ Казани
Re: Часы "МЕРКУРИЙ-40xА"
У меня где-то около 2 ух минут. При первом включении вроде больше, что-то около 5 мин., когда все нашёл.
У меня модуль с Али, я его сначала на компе проверил.....
У меня модуль с Али, я его сначала на компе проверил.....
- SergeyK
- Говорящий с текстолитом
- Сообщения: 1511
- Зарегистрирован: Вт апр 21, 2009 20:52:29
- Откуда: ХМАО Югра Белоярский
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
[uquote="Mr.Pupkin",url="/forum/viewtopic.php?p=3195740#p3195740"]У меня модуль с Али, я его сначала на компе проверил.....[/uquote]
Проверка заключается в подаче питания и смотреть что с TX сыпится?
Проверка заключается в подаче питания и смотреть что с TX сыпится?
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Делай всегда хорошо, а хреново и так получится!!!!!
-
Mr.Pupkin
- Мучитель микросхем
- Сообщения: 432
- Зарегистрирован: Ср янв 02, 2013 20:56:57
- Откуда: близ Казани
Re: Часы "МЕРКУРИЙ-40xА"
Я не дома сейчас.По скрину вроде понятно будет?Эта программулька всё покажет! Даже американск. флаг....
и RX-TX внимательно....
- SergeyK
- Говорящий с текстолитом
- Сообщения: 1511
- Зарегистрирован: Вт апр 21, 2009 20:52:29
- Откуда: ХМАО Югра Белоярский
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
Ну а без спец программ в терминалку должно что то идти?
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Делай всегда хорошо, а хреново и так получится!!!!!
- vitalyadm
- Мучитель микросхем
- Сообщения: 433
- Зарегистрирован: Пт янв 14, 2011 13:27:12
- Откуда: Калуга
Re: Часы "МЕРКУРИЙ-40xА"
Да, с ТХ КОЛЬЦА должны идти все данные которые отдаёт ему 328- я мега. Выглядит так:
Подключаемся к TX 8-й меги, включаем (именно RX USB UART -> TX 8- й меги т.е. кольца, ибо она передаёт обратно всё что получает!!!!!):
Информация от 328- й меги с всяким хламом (при включении):
02-10-17, 15:53:08, 54 -> INCORRECT DATA FORMAT: START OF DEVICE "MERCURY 402-A"
02-10-17, 15:53:09, 57 -> MWF: #SR:DATA TEST: "PRESSURE: 758, TEMPERATURE: 24.2"<ER
02-10-17, 15:53:09, 17 -> MWF: #SR:START<ER
02-10-17, 15:53:09, 23 -> SWITCHING TO START MODE
02-10-17, 15:53:09, 17 -> STF: #SR:START<ER
02-10-17, 15:53:09, 17 -> STF: #SR:START<ER
Информация о синхронизации:
02-10-17, 15:53:10, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
02-10-17, 15:53:11, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
02-10-17, 15:53:12, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
02-10-17, 15:53:13, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
Соответственно в данном примере спутников ещё нет: STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER, когда они появятся строка станет примерно такого вида: "$GPRMC,122641.00,V,,,,,,,021017,,,N*7A"
Т.е. проще говоря, если с ТХ кольца валятся подобные строки, значит по физике всё ОК, самое главное должна быть вот эта строка: STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
Есть и ещё один момент, товарищ мне написал. Говорит сутки на окне пролежал модуль- спутники так и не нашёл, взял другой такой же модуль, спутники нашлись за пару минут. Значит китайцы могут и не рабочий подсунуть. Вообще самый простой вариант, подключить модуль напрямую к USB-UART минуя часы вообще и посмотреть на строку $GPRMC......, если она всегда одного и того же вида, т.е.: $GPRMC,,V,,,,,,,,,,N*53, значит с модулем скорее всего всё плохо.
Подключаемся к TX 8-й меги, включаем (именно RX USB UART -> TX 8- й меги т.е. кольца, ибо она передаёт обратно всё что получает!!!!!):
Информация от 328- й меги с всяким хламом (при включении):
02-10-17, 15:53:08, 54 -> INCORRECT DATA FORMAT: START OF DEVICE "MERCURY 402-A"
02-10-17, 15:53:09, 57 -> MWF: #SR:DATA TEST: "PRESSURE: 758, TEMPERATURE: 24.2"<ER
02-10-17, 15:53:09, 17 -> MWF: #SR:START<ER
02-10-17, 15:53:09, 23 -> SWITCHING TO START MODE
02-10-17, 15:53:09, 17 -> STF: #SR:START<ER
02-10-17, 15:53:09, 17 -> STF: #SR:START<ER
Информация о синхронизации:
02-10-17, 15:53:10, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
02-10-17, 15:53:11, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
02-10-17, 15:53:12, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
02-10-17, 15:53:13, 35 -> STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
Соответственно в данном примере спутников ещё нет: STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER, когда они появятся строка станет примерно такого вида: "$GPRMC,122641.00,V,,,,,,,021017,,,N*7A"
Т.е. проще говоря, если с ТХ кольца валятся подобные строки, значит по физике всё ОК, самое главное должна быть вот эта строка: STF: #SR:$GPRMC,,V,,,,,,,,,,N*53<ER
Есть и ещё один момент, товарищ мне написал. Говорит сутки на окне пролежал модуль- спутники так и не нашёл, взял другой такой же модуль, спутники нашлись за пару минут. Значит китайцы могут и не рабочий подсунуть. Вообще самый простой вариант, подключить модуль напрямую к USB-UART минуя часы вообще и посмотреть на строку $GPRMC......, если она всегда одного и того же вида, т.е.: $GPRMC,,V,,,,,,,,,,N*53, значит с модулем скорее всего всё плохо.
- Вложения
-
- test.jpg
- Что куда подключать
- (110.9 КБ) 578 скачиваний
- SergeyK
- Говорящий с текстолитом
- Сообщения: 1511
- Зарегистрирован: Вт апр 21, 2009 20:52:29
- Откуда: ХМАО Югра Белоярский
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
А если просто сам GPS подключить к терминалке там должно что то быть?
У меня тишина полная вообще никаких данных не идет((((
Я блочек выпаял с платы и подключил отдельно.
Щас забрал с почты еще один, буду пробовать!
Подключил второй ...... этот вообще никаких признаков жизни не подает(((( даже светодиод на модуле не светится!!!!
У меня тишина полная вообще никаких данных не идет((((
Я блочек выпаял с платы и подключил отдельно.
Щас забрал с почты еще один, буду пробовать!
Подключил второй ...... этот вообще никаких признаков жизни не подает(((( даже светодиод на модуле не светится!!!!
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Делай всегда хорошо, а хреново и так получится!!!!!
- vitalyadm
- Мучитель микросхем
- Сообщения: 433
- Зарегистрирован: Пт янв 14, 2011 13:27:12
- Откуда: Калуга
Re: Часы "МЕРКУРИЙ-40xА"
Да, конечно, если подключить просто модуль, по схеме:
RX USB UART -> TX GPS
+5 USB UART -> Vcc GPS
GND USB UART -> GND GPS
То должно в терминалке быть следующее:
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
.
.
.
Вы раньше времени не расстраивайтесь!
Прежде чем подбирать скорости вот что, подключите модуль и только модуль по схеме:
RX USB UART -> TX GPS
TX USB UART -> RX GPS
+5 USB UART -> Vcc GPS
GND USB UART -> GND GPS
Открываете терминалку, скорость 9600 и пишите AT и ентер, вполне возможно, что модуль сразу оживёт и ответит ОК. Если ответил, отлично дальше пишите команду AT+IPR=9600 ентер, далее AT&W и ентер. Всё. Вполне возможно, что сейчас модуль и не знает на какой скорости ему общаться (если он новый), потому ждёт первых байт да бы определиться на какой скорости работать далее. Если при 9600 на команду AT модуль молчит, то вариант "Б"!
Просто попробуйте скорость подобрать. Не факт что модуль не Б/У шный, мне например модуль Б/У китацы прислали. Ставьте 9600- открыть СОМ, нет ничего, ну и ладно, следующая скорость 14400, открыть COM, опять нет ничего? Ну и ладно, следующая 19200 и т.д., чёт мне подсказывает что на скорости так 115200 данные пойдут
Если так, то надо будет переставить скорость на 9600 и сохранить настройки на модуле!
Добавлено after 13 minutes 33 seconds:
Если вариант "А" не сработал, а сработал вариант "Б".
1. Скорость подобрали, например оказалось 115200, хорошо
2. На скорости 115200 пишите команду "AT+IPR=9600" и ентер
3. Не отключая питания!!! модуля, закрываете COM и открываете его уже на скорости 9600
4. На скорости 9600 открываете COM, должны уже сыпаться строки
5. пишите команду "AT&W" и ентер, модуль запоминает свою установленную скрости и теперь при включении он сразу начнёт вещать на скорости 9600, что собственно и требуется!

RX USB UART -> TX GPS
+5 USB UART -> Vcc GPS
GND USB UART -> GND GPS
То должно в терминалке быть следующее:
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
.
.
.
Вы раньше времени не расстраивайтесь!
Прежде чем подбирать скорости вот что, подключите модуль и только модуль по схеме:
RX USB UART -> TX GPS
TX USB UART -> RX GPS
+5 USB UART -> Vcc GPS
GND USB UART -> GND GPS
Открываете терминалку, скорость 9600 и пишите AT и ентер, вполне возможно, что модуль сразу оживёт и ответит ОК. Если ответил, отлично дальше пишите команду AT+IPR=9600 ентер, далее AT&W и ентер. Всё. Вполне возможно, что сейчас модуль и не знает на какой скорости ему общаться (если он новый), потому ждёт первых байт да бы определиться на какой скорости работать далее. Если при 9600 на команду AT модуль молчит, то вариант "Б"!
Просто попробуйте скорость подобрать. Не факт что модуль не Б/У шный, мне например модуль Б/У китацы прислали. Ставьте 9600- открыть СОМ, нет ничего, ну и ладно, следующая скорость 14400, открыть COM, опять нет ничего? Ну и ладно, следующая 19200 и т.д., чёт мне подсказывает что на скорости так 115200 данные пойдут
Если так, то надо будет переставить скорость на 9600 и сохранить настройки на модуле!
Добавлено after 13 minutes 33 seconds:
Если вариант "А" не сработал, а сработал вариант "Б".
1. Скорость подобрали, например оказалось 115200, хорошо
2. На скорости 115200 пишите команду "AT+IPR=9600" и ентер
3. Не отключая питания!!! модуля, закрываете COM и открываете его уже на скорости 9600
4. На скорости 9600 открываете COM, должны уже сыпаться строки
5. пишите команду "AT&W" и ентер, модуль запоминает свою установленную скрости и теперь при включении он сразу начнёт вещать на скорости 9600, что собственно и требуется!
- SergeyK
- Говорящий с текстолитом
- Сообщения: 1511
- Зарегистрирован: Вт апр 21, 2009 20:52:29
- Откуда: ХМАО Югра Белоярский
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
А в диспечере устройств надо скорость менять порта. В программе терминалке (которую вы скидывали) перебрал все скорости и тишина нет ответа(((( светодиод на модуле как себя должен вести?
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Делай всегда хорошо, а хреново и так получится!!!!!
- vitalyadm
- Мучитель микросхем
- Сообщения: 433
- Зарегистрирован: Пт янв 14, 2011 13:27:12
- Откуда: Калуга
Re: Часы "МЕРКУРИЙ-40xА"
Вот в диспетчере устройств как раз скорость менять не надо, скорость надо меня в настройках COM самой программы, опрашивать модуль на 9600 пробовали? В нижней строчке AT написать и нажать кнопку "Послать команду"?
- SergeyK
- Говорящий с текстолитом
- Сообщения: 1511
- Зарегистрирован: Вт апр 21, 2009 20:52:29
- Откуда: ХМАО Югра Белоярский
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
В программе перебрал все скорости и команду отправлял.
Гнев - мгновенное разрушение реальности!
Делай всегда хорошо, а хреново и так получится!!!!!
Делай всегда хорошо, а хреново и так получится!!!!!
- vitalyadm
- Мучитель микросхем
- Сообщения: 433
- Зарегистрирован: Пт янв 14, 2011 13:27:12
- Откуда: Калуга
Re: Часы "МЕРКУРИЙ-40xА"
И так, встречаем новые прошивки!
Что сделано.
1. Изменён алгоритм работы "ночного режима". Теперь, когда часы "засыпают" основной индикатор НЕ гаснет полностью, а сбавляет яркость в несколько раз и отображает только время. "Кольцо" как и ранее гаснет полностью. За идею спасибо SergeyK!
2. Увеличена частота динамических индикаций. Теперь даже если очень всматриваться то никаких мерцаний нет.
В приложении все прошивки ATmega328- OK/OA, ATmega8- OK/OA. Обновлять прошивки нужно на обоих процах.
Да и вот видео на котором в тестовом режиме индикатор переключается между дневным и ночным режимом в плане яркости. При включении дневного режима камера на телефона от яркости немного "слепла" и фокус начинал уплывать,. Для понятности и наглядности, снимал в полумраке, свет выключен, жалюзи задвинуты. http://yadi.sk/i/_LqTPNdW3NRZ4R
В общем в полной темноте ночной режим смотрится вполне и не ярко и глазу приятно!
Что сделано.
1. Изменён алгоритм работы "ночного режима". Теперь, когда часы "засыпают" основной индикатор НЕ гаснет полностью, а сбавляет яркость в несколько раз и отображает только время. "Кольцо" как и ранее гаснет полностью. За идею спасибо SergeyK!
2. Увеличена частота динамических индикаций. Теперь даже если очень всматриваться то никаких мерцаний нет.
В приложении все прошивки ATmega328- OK/OA, ATmega8- OK/OA. Обновлять прошивки нужно на обоих процах.
Да и вот видео на котором в тестовом режиме индикатор переключается между дневным и ночным режимом в плане яркости. При включении дневного режима камера на телефона от яркости немного "слепла" и фокус начинал уплывать,. Для понятности и наглядности, снимал в полумраке, свет выключен, жалюзи задвинуты. http://yadi.sk/i/_LqTPNdW3NRZ4R
В общем в полной темноте ночной режим смотрится вполне и не ярко и глазу приятно!
- Вложения
-
- прошивки.zip
- Прошивки процов
- (36.32 КБ) 297 скачиваний
-
demos.vlz
- Открыл глаза
- Сообщения: 55
- Зарегистрирован: Вт сен 01, 2009 11:51:00
- Откуда: Волжский, Волгоградская область
- Контактная информация:
Re: Часы "МЕРКУРИЙ-40xА"
vitalyadm, вы не поделитесь блок-схемой алгоритма получения точного времени? не должно быть там разницы в 5 секунд. ненормально это. Время прохождения сигнала от спутников - десятки микросекунд
И в прошивках из сообщения выше есть коррекция 5 секунд или нет? Хочу поэксперементировать с прошивкой без коррекции, осталось только активную внешнюю антенну из Китая дождаться и разъемов для ее подключения
И в прошивках из сообщения выше есть коррекция 5 секунд или нет? Хочу поэксперементировать с прошивкой без коррекции, осталось только активную внешнюю антенну из Китая дождаться и разъемов для ее подключения
- vitalyadm
- Мучитель микросхем
- Сообщения: 433
- Зарегистрирован: Пт янв 14, 2011 13:27:12
- Откуда: Калуга
Re: Часы "МЕРКУРИЙ-40xА"
Да нормально всё там с алгоритмом, ок, выглядит так:
ждём строку с заголовком GPRMC, как только строка пришла, разбираем её, разбор идёт между первой запятой и точкой (или второй запятой, что раньше встретится). Далее преобразуем получившееся значение в счётчик суточных секунд (например 124537) по принципу х = ( 12 * 3600 ) + ( 45 * 60 ) + 37, это в данном случае. Всё. Не, тут в другом заморочка получается, гвоздь торчит примерно тут:.
Для более шустрой синхронизации проц не ждёт точно установленного местоположения, если быть точным, то: $GPRMC,084056.00,A,5430.30076,N,03615.36031,E,0.723,,250517,,,A*7B, где ,А, и указывает на то, что местоположение определено точно и найдено минимум три спутника. Изначально кстати так и было сделано, что если нет А, то строку игнорируем и ждём следующую. Но при таком раскладе синхронизация в помещении очень долго идёт. А так как сейчас проц хватает первую же строку в которой содержится значение времени ($GPRMC,122641.00,V,,,,,,,270617,,,N*7A), даже от первого попавшегося спутника и одного, то вот тут и кроется скорее всего загвоздка.
Проще говоря в самом алгоритме нет ошибки, да и быть не может, получили строку, обработали, преобразовали, несколько микросекунд потратили, другой момент, что значения которые в строке не совсем соответствуют истине. От так.
Соответственно, или ждать минимум три спутника, а в помещении это оййййй))))))) Или же хватать первый попавшейся, а потом сделать программную корректировку. В принципе вот лично меня эти гуляния в +-2 секунды не напрягают вообще никак. Если надо кому- то прям очень точно, можно вернуть проверку на "А", будет точно, но в помещении очень "долго".
ждём строку с заголовком GPRMC, как только строка пришла, разбираем её, разбор идёт между первой запятой и точкой (или второй запятой, что раньше встретится). Далее преобразуем получившееся значение в счётчик суточных секунд (например 124537) по принципу х = ( 12 * 3600 ) + ( 45 * 60 ) + 37, это в данном случае. Всё. Не, тут в другом заморочка получается, гвоздь торчит примерно тут:.
Для более шустрой синхронизации проц не ждёт точно установленного местоположения, если быть точным, то: $GPRMC,084056.00,A,5430.30076,N,03615.36031,E,0.723,,250517,,,A*7B, где ,А, и указывает на то, что местоположение определено точно и найдено минимум три спутника. Изначально кстати так и было сделано, что если нет А, то строку игнорируем и ждём следующую. Но при таком раскладе синхронизация в помещении очень долго идёт. А так как сейчас проц хватает первую же строку в которой содержится значение времени ($GPRMC,122641.00,V,,,,,,,270617,,,N*7A), даже от первого попавшегося спутника и одного, то вот тут и кроется скорее всего загвоздка.
Проще говоря в самом алгоритме нет ошибки, да и быть не может, получили строку, обработали, преобразовали, несколько микросекунд потратили, другой момент, что значения которые в строке не совсем соответствуют истине. От так.
Соответственно, или ждать минимум три спутника, а в помещении это оййййй))))))) Или же хватать первый попавшейся, а потом сделать программную корректировку. В принципе вот лично меня эти гуляния в +-2 секунды не напрягают вообще никак. Если надо кому- то прям очень точно, можно вернуть проверку на "А", будет точно, но в помещении очень "долго".
Re: Часы "МЕРКУРИЙ-40xА"
Информация в строке RMC - рекомендованный минимальный набор данных. Cодержит набор PVT данных (position, velocity, time - позиция, скорость, время). Эта информация явно избыточна для синхронизации времени. Я не специалист, но предполагаю, что это требует лучших условий приёма.
Строка GGA – информация о трехмерном местоположение и точности, содержит информацию о времени UTC и координатах, скорость не определяется.
Как показывает практика синхронизации, получить эту информацию со спутников проще и быстрее, потому что нет в этой строке статуса (А- активный - valid, V- игнорировать - invalid).
Уважаемый автор по какой-то причине выбрал более сложный путь.
Строка GGA – информация о трехмерном местоположение и точности, содержит информацию о времени UTC и координатах, скорость не определяется.
Как показывает практика синхронизации, получить эту информацию со спутников проще и быстрее, потому что нет в этой строке статуса (А- активный - valid, V- игнорировать - invalid).
Уважаемый автор по какой-то причине выбрал более сложный путь.