реклама на сайте
подробности

 
 
> Как правильно получать доли секунд от RTC STM32?
AHTOXA
сообщение May 22 2018, 19:47
Сообщение #1


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Понадобилось мне время поточнее.

В новом RTC у тех STM-ок, что поновее (вроде бы у всех, кроме F1) есть специальный регистр для этого - SSR.
Также есть два предделителя: синхронный и асинхронный.
Делаю такую инициализацию:

Код
    static constexpr unsigned quartzFreqHz = 32768;  // частота кварца
    static constexpr unsigned asyncPrediv = 0x1F;      // асинхронный предделитель
    static constexpr unsigned syncPrediv = quartzFreqHz / (asyncPrediv + 1) - 1;  // синхронный предделитель
.....
    RTC->PRER = syncPrediv;
    RTC->PRER |= asyncPrediv << 16;


После этого я ожидаю, что в регистре SSR будут значения от 0 до 32768/(asyncPrediv+1) = 1024. Однако, запустив цикл вывода значений SSR на печать, я наблюдаю там числа от 0 до 1055(!). Возможно и более, я не очень долго смотрел.

Внимание, вопрос: почему так? Что я сделал не так? Кто-нибудь сталкивался с таким?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Эдди
сообщение May 23 2018, 19:10
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Для системы старт-финиш, синхронизирующейся по pps от GPS, я делал автоподстройку таймера. В данном случае тоже можно завести отдельный таймер, который автоподстраивать периодически по RTC. И будут вам и милли, и микросекунды при желании!

// плохо читаю комментарии, выше уже как раз-таки это посоветовали.

Сообщение отредактировал Эдди - May 23 2018, 19:10
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 09:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016