-
- Я в своих изделиях использую 4х байтный формат времени.
Соответственно кодирую и декодирую при использовании.
Соответственно не сложно сколь угодно прибавить - убавить не
задумываясь. - vesago(13.12.2023 17:47)
- с самого начала так и не мог понять - зачем чего-то куда-то
прибавлять? Что за машина времени? Включают мой пульт, он ходит на
сервер и спрашивает текущее время. Потом вносит его в RTC. Нет
связи? Пользуется тем, что сам насчитал. Нет связи и батарейку
вынули? При включении питания берет из ЕЕПРОМ последнее
сохраненное. Так-то да, есть в меню режим принудительного
установления дата/время. Но вот прибавить 32 секунды? Странно.... - Лaгyнoв(13.12.2023 21:16)
- будильник, рассчитать время когда нужно айай, есть сейчас и нужно через заданное время что то произвести. Nikolay801_(8 знак., 14.12.2023 10:50)
- Ежели "ходит на сервер", дык, и проблем нема. А вот ежели у него
полная обособленность от всяческих вражеских дел, то глонассом его
- не? Понятно, что в этом случае подвалы, клетки Фарадея и т.п. не
работают - но можно и "удлинитель" сделать… Вешаем на улице
кошерно-халяльный глонасс-приемник с МК, который по CAN-шине каждые
N миллисекунд будет синхровремя вещать. И вперде! - Eddy_Em(13.12.2023 21:45)
- всё равно странно. если ты видишь расхождение твоего внутреннего времени и взятого откуда-то точного времени, то просто возьми и установи это точное время в регистрах RTC. И всё. У меня для этого есть меню, когда человек видит неточное время - устанавливает точное. Ручками. - Лaгyнoв(14.12.2023 08:26)
- это древний велосипед Nikolay801_(1 знак., 13.12.2023 18:35, ссылка)
- с самого начала так и не мог понять - зачем чего-то куда-то
прибавлять? Что за машина времени? Включают мой пульт, он ходит на
сервер и спрашивает текущее время. Потом вносит его в RTC. Нет
связи? Пользуется тем, что сам насчитал. Нет связи и батарейку
вынули? При включении питания берет из ЕЕПРОМ последнее
сохраненное. Так-то да, есть в меню режим принудительного
установления дата/время. Но вот прибавить 32 секунды? Странно.... - Лaгyнoв(13.12.2023 21:16)
- Красиво не получится. Общая схема всегда такая: читаем регистры в
tm дату-время (год-мес-день-час-мин-сек) декодируем в time_t,
увеличиваем, декодируем назад, пишем регистры. - RxTx(12.12.2023 21:28)
- +1 - Nikolay801_(13.12.2023 11:13)
- Жаль, никто не надоумил ST'шных ингенеров, что надо бы скрытый
регистр-счетчик наружу вынести! А то от этого RTC вообще толку
никакого нет! - Eddy_Em(12.12.2023 21:58)
- Насколько я знаю как это работает в других микрушках (декаппили микруху наручных часиков и кажется Dallas) - там сделаны отдельные цепочки триггеров (счётчики) для часов, минут, часов, дней и недель. Так проще сделать. И экономнее по энергии. - RxTx(12.12.2023 22:24)
- Нормальные внешние часы именно с регистрами работают. Кому этот счетчик нужен если разработчик обеспокоился календарем на ближайшие 100 лет. Редкий случай "увеличения на 32 секунды" решается ручками. - POV(12.12.2023 22:02)
- Более странного вопроса не трудно пришлось ожидать. И спасибо! Дожились... Я о том, что новейшие истории пишутся еще живыми освежевателямии тушки. - bnb62(12.12.2023 19:31)
- Я бы предложил не трогать этот BCD-счетчик, пусть считает. А коррекцию (4-байтовое значение в секундах) хранить в BACKUP-регистрах. il-2(214 знак., 12.12.2023 19:01, ссылка)
- у меня в L476 есть регистр секунд в BCD формате. Берешь и прибавляешь. Но возможно надо прибавить и минуты (другой регистр). И часы. :-) - Лaгyнoв(12.12.2023 18:10)
- Кстати, проще - чтобы tzdata не нужна была - вычислять julian date, вносить изменения, пересчитывать в "нормальные" время/дату и вносить изменения в регистры. - Eddy_Em(12.12.2023 16:36)
- Красиво - это просто подождать 32 секунды. И проблема решится сама собой! - SciFi(12.12.2023 16:22)
- У F103 RTC как такового нет - там тупо счетчик, у остальных уже
регистры с датой-временем. А если нужно UNIX time вести учет,
почему бы просто таймер не завести? - Eddy_Em(12.12.2023 16:17)
- Ты расшифровку RTC знаешь? Он там как раз есть. Нет календаря. - POV(12.12.2023 16:18)
- Извините, я имел в виду RTC с календарём который. Peter_M(134 знак., 12.12.2023 16:25)
- Я к тому, что в 103 тупо счетчик тикает, а в остальных автоматом
меняется время-дата (правда, в BCD формате). Как по мне, в F103
более правильный RTC, чем в остальных. У тех замучаешься UNIX-time
считать — без tzdata будет нехилая погрешность! Eddy_Em(168 знак., 12.12.2023 16:22)
- Первая ссылка яндекса. Не знаю что внутри приложенного там файла,
но если в МК нет счетчика, то его надо получать ручками, а затем
преобразовывать обратно. POV(1 знак., 12.12.2023 16:37, ссылка)
- Тьфу, блин! И там я на то же попался со своим tzdata! Eddy_Em(362 знак., 12.12.2023 16:39)
- Первая ссылка яндекса. Не знаю что внутри приложенного там файла,
но если в МК нет счетчика, то его надо получать ручками, а затем
преобразовывать обратно. POV(1 знак., 12.12.2023 16:37, ссылка)
- Ты расшифровку RTC знаешь? Он там как раз есть. Нет календаря. - POV(12.12.2023 16:18)
- гет_коунтер, прибавляешь число соответствующее 32 секундам,
сет_коунтер. А прогамный или аппаратный календарь сам разберется
как там что вышло. - POV(12.12.2023 16:13)
- Внимательно полистал даташиты на F0 и G4: ни там, ни там нет
доступа к счетному регистру. Т.е. тупо прибавить 10 секунд к
счетчику не выйдет. Придется работать с регистрами RTC_TR/RTC_DR
напрямую в режиме INIT! - Eddy_Em(12.12.2023 16:32)
- ТС не уточнил сразу о чём речь идет.. Ф1хх вполне под задачу
подходит )) - POV(12.12.2023 16:33)
- Он упомянул, что ему именно хочется "нормальный" RTC - с регистрами под дату-время в BCD. Eddy_Em(159 знак., 12.12.2023 16:37)
- ТС не уточнил сразу о чём речь идет.. Ф1хх вполне под задачу
подходит )) - POV(12.12.2023 16:33)
- Внимательно полистал даташиты на F0 и G4: ни там, ни там нет
доступа к счетному регистру. Т.е. тупо прибавить 10 секунд к
счетчику не выйдет. Придется работать с регистрами RTC_TR/RTC_DR
напрямую в режиме INIT! - Eddy_Em(12.12.2023 16:32)
- Я в своих изделиях использую 4х байтный формат времени.
Соответственно кодирую и декодирую при использовании.
Соответственно не сложно сколь угодно прибавить - убавить не
задумываясь. - vesago(13.12.2023 17:47)