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

 
 
> STM32 TIM. Пожалуйста помогите разобраться, Всё что касается таймеров
KARLSON
сообщение Aug 18 2015, 06:29
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Здравствуйте. Как вы поняли из темя вопрос про таймеры.
Камень 103VG. TIM3
При настройке базовых параметров таймера наткнулся на непонятные режимы.
TIM_TimeBaseInitTypeDef.TIM_CounterMode имеет 3 значения
TIM_CounterMode_CenterAligned1
TIM_CounterMode_CenterAligned2
TIM_CounterMode_CenterAligned3
Объясните, пожалуйста, что это за режимы? От куда до куда считает?
(Регистр TIM3->CR1 биты CMS)


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
scifi
сообщение Aug 18 2015, 07:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата
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").
Go to the top of the page
 
+Quote Post
SSerge
сообщение Aug 18 2015, 07:41
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Есть только один способ разобраться с таймерами - брать реф. мануал и читать. Как следует начитавшись - писать код и смотреть что получается.
Никакие библиотеки сами по себе не помогут - чтобы понять что они делают читать реф. мануал всё равно необходимо, а поскольку документация на эти библиотеки никакая - придётся ещё и сами библиотеки читать.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 18 2015, 07:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(SSerge @ Aug 18 2015, 10:41) *
Никакие библиотеки сами по себе не помогут - чтобы понять что они делают читать реф. мануал всё равно необходимо, а поскольку документация на эти библиотеки никакая - придётся ещё и сами библиотеки читать.

+100500. Откуда взялась эта абсурдная мысль, что, посмотрев на пару макросов, можно понять, как работает таймер? Никак нельзя это понять, таймер слишком сложен. Максимум, в чём может помочь "библиотека", - это заполнить регистры, чтобы меньше сверяться со справочникам по поводу номеров битов. Но для этого нужна только горстка макросов, называть это "библиотекой" язык не поворачивается.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Aug 18 2015, 08:13
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Про чтение, курение файлов, пробовать - это всё понятно. Но есть ещё способ спросить (что в случае ответа бывает быстрее и в сочетании чтения, курения и опробования даёт результат в понимании чуть больше.)

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

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

P.S. Тут по ходу и прерывание разное будет и ШИМ разный смотря на рисунок 131.


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Aug 18 2015, 10:59
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(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.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Aug 18 2015, 11:42
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Ага, понятно. Благодарю.


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post

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

 


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


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