Jump to content

    
jenya7

Настройка таймера на счет внешних событий.

Recommended Posts

11 hours ago, Baser said:

Чего-то я вашу задачу понять не могу. Зачем вам 4 входа? Как мультиплексор?
Таймер все равно имеет только один счетный регистр (таймер это один таймер :)) и в один момент может считать импульсы  только от одного входа.
Если нужно одновременно считать импульсы на четырех входах - нужно четыре разных таймера.

 

у таймера 4 TIMx capture/compare register - TIMx_CCR1, TIMx_CCR2, TIMx_CCR3, TIMx_CCR4 котрые могут считать в capture режиме.

4 PWM сигнала я могу выдать наружу почему не посчитать по 4 входам?

 

Share this post


Link to post
Share on other sites
2 minutes ago, jenya7 said:

4 PWM сигнала я могу выдать наружу почему не посчитать по 4 входам?

Простите, а что вы под счётом понимаете? Посчитать количество импульсов? Тогда это физически невозможно, ведь регистр-счётчик один, и имя ему CNT. А если выполнить измерение длины импульсов в тиках таймера, то да, можно. Но это уже не счёт импульсов, а "захват".

Share this post


Link to post
Share on other sites
1 hour ago, haker_fox said:

Простите, а что вы под счётом понимаете? Посчитать количество импульсов? Тогда это физически невозможно, ведь регистр-счётчик один, и имя ему CNT. А если выполнить измерение длины импульсов в тиках таймера, то да, можно. Но это уже не счёт импульсов, а "захват".

я надеялся что в режиме Timer Input CCRх могут работать как счетчики.

вот ESP32. ну красава же.


pulse_count.thumb.png.d6cdea22721cda469e1587804e544c2a.png

Edited by jenya7

Share this post


Link to post
Share on other sites
15 minutes ago, jenya7 said:

я надеялся что в режиме Timer Input CCRх могут работать как счетчики.

В CCRx записываются текущие значения таймера CNT в момент события захвата (по фронту, например).

15 minutes ago, jenya7 said:

вот ESP32. ну красава же.

Простите, с ним не знаком. Оценить не могу)

Share this post


Link to post
Share on other sites
13 часов назад, jenya7 сказал:

я надеялся что в режиме Timer Input CCRх могут работать как счетчики.

Можете не надеяться. Максимум что в Input CCRх есть, это делитель на 8. Можно снизить число прерываний в 8 раз в сравнении с простым счетом импульсов по прерываниям порта.

Ну и опять же, задачу свою не озвучили, какую частоту нужно считать, с какой точностью и как быстро?
Одно дело, когда частота 1 кГц с точностью в 0.0001 Гц и другое дело, когда 10 МГц с точностью 1 Гц. Или включая и то, и другое. Методы измерения будут различные.

Share this post


Link to post
Share on other sites
10 hours ago, Baser said:

Можете не надеяться. Максимум что в Input CCRх есть, это делитель на 8. Можно снизить число прерываний в 8 раз в сравнении с простым счетом импульсов по прерываниям порта.

Ну и опять же, задачу свою не озвучили, какую частоту нужно считать, с какой точностью и как быстро?
Одно дело, когда частота 1 кГц с точностью в 0.0001 Гц и другое дело, когда 10 МГц с точностью 1 Гц. Или включая и то, и другое. Методы измерения будут различные.

да смысла нет. мне не важно на какое прерывание заходить по внешнему пину или CCRх. а какие методы тут могут быть - или таймер или прерывание. таймер отпадает, если мне нужно несколько каналов я не убью несколько таймеров под эту задачу.

Edited by jenya7

Share this post


Link to post
Share on other sites
On 6/24/2020 at 7:13 AM, jenya7 said:

да смысла нет. мне не важно на какое прерывание заходить по внешнему пину или CCRх. а какие методы тут могут быть - или таймер или прерывание. таймер отпадает, если мне нужно несколько каналов я не убью несколько таймеров под эту задачу.

 

Вы меня спрашивали тоже по теме четырех входов, ребята ответили уже, что никак, поскольку считает только CNT, а capture registers - только для "слизывания" текущего значения CNT в момент какого-то события. Но STMы имеют много таймеров, старшие камни - вообще очень много, и можно вполне набрать 4 штуки. В одном моем проекте я должен выдавать 4 разных таймерных сигнала, причем стартовать это дело должно синхронно, так я взял 5 таймеров: четыре для генерации сигналов и один как "мастер" для них для синхронизации. И в камне еще остались таймеры (STM32F103RFT6). Не экономьте.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.