Принцип работы RTC в STM32F107

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Auratos
Родился
Сообщения: 16
Зарегистрирован: Пн окт 19, 2015 09:19:16

Принцип работы RTC в STM32F107

Сообщение Auratos »

Добрый день. Имеется на руках контроллер серии STM32F107xx. Пользуюсь активно таймером реального времени. И вот, собственно, возник вопрос: а какой у этого таймера диапазон измерения времени? Т.к. там 32-битный секундный счетчик, то максимум он сможет отсчитать ~136 лет. Отсчет начинается, как я понял, с 1900 года, т.е. до 2036 года. А что будет после его переполнения, т.е. после 2036 года? Можно ли самому подвинуть точку отсчета? Или там совсем все устроено по-другому? Объясните, пожалуйста
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Принцип работы RTC в STM32F107

Сообщение uk8amk »

Согласно документации там стоит обычный 32-разрядный счётчик.
Этот счётчик может считать только от 0x00000000 до 0xFFFFFFFF. После этого происходит переполнение с обнулением счётного регистра.
Счётчик считает импульсы и он понятия не имеет о привязке к конкретному году. Интерпретация начального значения отсчёта задаётся программистом в его программе.
Реклама
linuxdude
Нашел транзистор. Понюхал.
Сообщения: 196
Зарегистрирован: Пн фев 05, 2018 18:03:00

Re: Принцип работы RTC в STM32F107

Сообщение linuxdude »

Там обычный 32-битный счетчик. Если начинать считать с 1970 года (как в традиционном unix time, что проще, т.к. бывают готовые процедуры конверсии в человекочитаемую дату) - вас долбанет небезызвестная проблема 2038, соответственно. Но если это важно и вы уверены что ваша железка будет актуальна через 20 лет - что мешает завести счетчик с старшими 32 битами? Можно старшую часть в каких-нибудь backup регистрах сохранить, например. Там у счетчика даже прерывание при переполнении возможно вроде. Ну а 64-битного числа секунд хватит ... ну вам точно хватит, люди столько не живут. Да и микроконтроллеры тоже.
Ответить

Вернуться в «ARM»