Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Ср фев 28, 2018 12:11:25

Добрый день. Имеется на руках контроллер серии STM32F107xx. Пользуюсь активно таймером реального времени. И вот, собственно, возник вопрос: а какой у этого таймера диапазон измерения времени? Т.к. там 32-битный секундный счетчик, то максимум он сможет отсчитать ~136 лет. Отсчет начинается, как я понял, с 1900 года, т.е. до 2036 года. А что будет после его переполнения, т.е. после 2036 года? Можно ли самому подвинуть точку отсчета? Или там совсем все устроено по-другому? Объясните, пожалуйста

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

Ср фев 28, 2018 23:02:47

Согласно документации там стоит обычный 32-разрядный счётчик.
Этот счётчик может считать только от 0x00000000 до 0xFFFFFFFF. После этого происходит переполнение с обнулением счётного регистра.
Счётчик считает импульсы и он понятия не имеет о привязке к конкретному году. Интерпретация начального значения отсчёта задаётся программистом в его программе.

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

Ср мар 07, 2018 15:27:46

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