Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 TIM. Пожалуйста помогите разобраться
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
KARLSON
Здравствуйте. Как вы поняли из темя вопрос про таймеры.
Камень 103VG. TIM3
При настройке базовых параметров таймера наткнулся на непонятные режимы.
TIM_TimeBaseInitTypeDef.TIM_CounterMode имеет 3 значения
TIM_CounterMode_CenterAligned1
TIM_CounterMode_CenterAligned2
TIM_CounterMode_CenterAligned3
Объясните, пожалуйста, что это за режимы? От куда до куда считает?
(Регистр TIM3->CR1 биты CMS)
scifi
Цитата
In center-aligned mode, the counter counts from 0 to the auto-reload value (content of the
TIMx_ARR register) – 1, generates a counter overflow event, then counts from the auto-reload
value down to 1 and generates a counter underflow event. Then it restarts counting
from 0.
Center-aligned mode is active when the CMS bits in TIMx_CR1 register arenot equal to '00'.
The Output compare interrupt flag of channels configured in output is set when: the counter
counts down (Center aligned mode 1, CMS = "01"), the counter counts up (Center aligned
mode 2, CMS = "10") the counter counts up and down (Center aligned mode 3, CMS =
"11").
SSerge
Есть только один способ разобраться с таймерами - брать реф. мануал и читать. Как следует начитавшись - писать код и смотреть что получается.
Никакие библиотеки сами по себе не помогут - чтобы понять что они делают читать реф. мануал всё равно необходимо, а поскольку документация на эти библиотеки никакая - придётся ещё и сами библиотеки читать.
scifi
Цитата(SSerge @ Aug 18 2015, 10:41) *
Никакие библиотеки сами по себе не помогут - чтобы понять что они делают читать реф. мануал всё равно необходимо, а поскольку документация на эти библиотеки никакая - придётся ещё и сами библиотеки читать.

+100500. Откуда взялась эта абсурдная мысль, что, посмотрев на пару макросов, можно понять, как работает таймер? Никак нельзя это понять, таймер слишком сложен. Максимум, в чём может помочь "библиотека", - это заполнить регистры, чтобы меньше сверяться со справочникам по поводу номеров битов. Но для этого нужна только горстка макросов, называть это "библиотекой" язык не поворачивается.
KARLSON
Про чтение, курение файлов, пробовать - это всё понятно. Но есть ещё способ спросить (что в случае ответа бывает быстрее и в сочетании чтения, курения и опробования даёт результат в понимании чуть больше.)

Прочитав ещё более нахмурившись)) я понял эти режимы так. Поправьте если не так.
Во всех 3-х режимах счётчик считает от нуля до регистра ARR и затем обратно до нуля.
Имеем ножку на контроллере - выход таймера. И на нём можем сделать импульсы когда счётчик начинает считать в верх (Aligned1), в низ (Aligned2) или когда и в верх и в низ (Aligned3). Рисунок 114 в референс мануале на 10xx Rev14/15.

Или речь не про ногу, а про прерывание?

P.S. Тут по ходу и прерывание разное будет и ШИМ разный смотря на рисунок 131.
SSerge
Цитата(KARLSON @ Aug 18 2015, 15:13) *
Прочитав ещё более нахмурившись)) я понял эти режимы так. Поправьте если не так.
Во всех 3-х режимах счётчик считает от нуля до регистра ARR и затем обратно до нуля.
Имеем ножку на контроллере - выход таймера. И на нём можем сделать импульсы когда счётчик начинает считать в верх (Aligned1), в низ (Aligned2) или когда и в верх и в низ (Aligned3). Рисунок 114 в референс мануале на 10xx Rev14/15.

Или речь не про ногу, а про прерывание?

Там шла речь про биты CC1F .. CC4F в регистре SR. Это такие "биты готовности", по их появлению можно разрешить прерывания (биты CC1IE .. CC4IE в регистре DIER). Они взводятся при совпадении счётчика с регистром сравнения в обычных (Up и Down) режимах, а в center-aligned mode возможностей больше: можно выбрать чтобы эти биты взводились только при совпадении при счёте вверх, при совпадении при счёте вниз или при совпадении при счёте в любую сторону.

А формирование сигналов на выходных ножках - это рулится отдельно, в регистрах CCMxR и CCER.
KARLSON
Ага, понятно. Благодарю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.