viakon 0 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба Всегда работал с обычным 32бит счетчиком в RTC. Но в STM32F405 вставлен календарь. Возникли вопросы. значение для года 0 в календаре стмки какому году в реальности соответствует? месяцы и дни считаются с 0 или с 1? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба Там же BCD формат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 9 сентября, 2022 Опубликовано 9 сентября, 2022 (изменено) · Жалоба В 09.09.2022 в 12:32, VladislavS сказал: Там же BCD формат. Вы намекаете что год не может быть больше 99? спрошу по другому. Если я, к примеру, буду просто писать туда 22 для 2022 года, то будет ли правильно работать календарь в високосные года? Изменено 9 сентября, 2022 пользователем viakon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба Это не я, это RM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба читал я это, но ответа на мой вопрос не нашел потому и спрашиваю тут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба 6 минут назад, viakon сказал: Если я, к примеру, буду просто писать туда 22 для 2022 года, то будет ли правильно работать календарь в високосные года? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба Теоретически можно за 0 принять любой год, но для правильного расчета нулевой год должен быть високосным. А с днями и месяцами как? январь это 0 или 1? 1 число месяца это 0 или 1? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 сентября, 2022 Опубликовано 9 сентября, 2022 (изменено) · Жалоба 6 минут назад, viakon сказал: 1 число месяца это 0 или 1? Вы прикалываетесь? 0-е января, 31-е января, 32-е января, 99-е января... Там описания то хрен да нихрена. Читайте внимательней. Изменено 9 сентября, 2022 пользователем VladislavS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба 1 час назад, viakon сказал: Если я, к примеру, буду просто писать туда 22 для 2022 года, то будет ли правильно работать календарь в високосные года? Просветите - в чём разница для високосности = 22 или 2022? 55 минут назад, viakon сказал: нулевой год должен быть високосным. 0-й год?!! Это в каком календаре такой есть? Или вы свой календарь изобретаете? 1 час назад, VladislavS сказал: Там же BCD формат. Как показывает практика, во многих таких календарях по настоящему не BCD-формат хранения, а BCD-формат инкремента (9->0) значения. Т.е. - BCD применяется только при инкременте значения 9. В остальных случаях может вести себя как обычная hex-тетрада. Это надо учитывать. PS: Это не конкретно про этот МК (как в нём - не знаю), а про другие реализации подобных RTC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба Боюсь представить, когда ТС узнает правило високосного года Цитата В григорианском календаре обычный год состоит из 365 дней. Поскольку фактическая продолжительность звездного года (период обращения Земли вокруг Солнца) составляет 365.2425 дней, «високосный год» в 366 дней используется один раз каждые четыре года для устранения ошибки, вызванной тремя обычными (но короткими) годами. Любой год, который делится на 4 без остатка, является високосным годом: например, 1988, 1992 и 1996 годы являются високосными годами. Тем не менее, есть еще небольшая ошибка, которая должна быть учтена. Чтобы устранить эту ошибку, григорианский календарь предусматривает, что год, который делится без остатка на 100 (например, 1900) является високосным годом только в том случае, если он также без остатка делится на 400. По этой причине следующие годы не являются високосными: 1700, 1800, 1900, 2100, 2200, 2300, 2500, 2600 Это потому, что они делятся без остатка на 100, но не на 400. Следующие годы – високосные: 1600, 2000, 2400 Это потому, что они делятся без остатка на 100 и 400. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба В 09.09.2022 в 13:35, jcxz сказал: 0-й год?!! Это в каком календаре такой есть? Или вы свой календарь изобретаете? поскольку значение года в календаре стмки имеет диапазон 0-99, потому и спрашиваю про 0-й год. Есть там привязка к реальному году например 2000 или я сам могу выбрать? опять же, подозреваю, что если в качестве начала отсчета выбрать 2010, то календарь нормально не будет обрабатывать високосные года. В 09.09.2022 в 13:46, VladislavS сказал: Боюсь представить, когда ТС узнает правило високосного года В применении к стм достаточно правила деление без остатка на 4. Рад за Вашу эрудицию, но к данной теме она практического применения не имеет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба 24 минуты назад, viakon сказал: В применении к стм достаточно правила деление без остатка на 4 Чё эта? STM запретила их в машине времени использовать? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба Берите 2000-й в качестве базового и не будет проблем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба 1 час назад, viakon сказал: поскольку значение года в календаре стмки имеет диапазон 0-99, потому и спрашиваю про 0-й год. Вообще-то там не "значение года", а "2 последние цифры года". Почувствуйте разницу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 9 сентября, 2022 Опубликовано 9 сентября, 2022 · Жалоба В 09.09.2022 в 15:15, jcxz сказал: Берите 2000-й в качестве базового и не будет проблем. Так и собирался сделать. осталось понять 1-е число месяца это 1 или 0 надо в календарь записывать? И январь также 0 или 1? В 09.09.2022 в 15:35, jcxz сказал: Почувствуйте разницу :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться