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

 
 
 
Reply to this topicStart new topic
> Запуск таймера от RTC
data_stack
сообщение Apr 15 2016, 14:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891



Нужно писать wav с настраиваемой частотой дискретизации. Беда в том, что это должно быть жестко привязано к RTC. Началась новая секунда - пошел новый отсчет таймера, а в прерывании таймера уже забираются данные. Хотелось бы чтобы RTC генерил триггер, который бы запускал таймер. Посмотрел апноты на RTC вроде ничего подходящего не нашел. Единственная идея соединить ноги RTC calibration out с какой нибудь ногой внешнего прерывания и внутри внешнего запускать свой таймер. Но прежде чем городить такой огород, хотелось бы понять, что другого выхода нет. Контроллер STM32L1.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 15 2016, 14:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(data_stack @ Apr 15 2016, 20:30) *
Нужно писать wav с настраиваемой частотой дискретизации. Беда в том, что это должно быть жестко привязано к RTC. Началась новая секунда - пошел новый отсчет таймера, а в прерывании таймера уже забираются данные.

Вы чего собственно хотите? Умножить частоту RTC на N и с такой частотой получать прерывания?
Это можно сделать например запустив любой таймер общего назначения от кварца и реализовать периодическую подстройку его от прерываний RTC (ФАПЧ). Будет конечно некоторый джиттер. Делал такое.
Go to the top of the page
 
+Quote Post
data_stack
сообщение Apr 15 2016, 19:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891



да именно это, просто не хочется изобретать велосипед. правильно ли я понимаю что это делается через прерывания alarm?

Сообщение отредактировал data_stack - Apr 15 2016, 19:27
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 15 2016, 20:44
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(data_stack @ Apr 16 2016, 01:24) *
да именно это, просто не хочется изобретать велосипед. правильно ли я понимаю что это делается через прерывания alarm?

Наверное. У меня была внешняя микросхема RTC, выдающая секундные импульсы на пин МК. По ним делал ФАПЧ одного из таймеров МК.
Т.е. - таймер тикал с частотой 1МГц (шаг ==1мкс), в каждом прерывании от импульса RTC смотрел фазу таймера, усреднял по неск. периодам (для компенсации джиттера от задержек входа в ISR) и делал оценку разницы хода таймера и RTC.
Если секундное прерывание от внутреннего RTC - то же самое.
Мне надо было подстраивать таймер. А Вам надо умножить. Соответственно дальше: делите полученный период RTC (в тиках таймера между текущим прерыванием и предыдущим) на нужное число интервалов и генерите прерывания с этими интервалами. Так как поделится не нацело, то интервалы будут разные.
Всё.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:22
Рейтинг@Mail.ru


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