Перейти к содержанию
    

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

11 hours ago, Baser said:

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

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, jenya7 said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, haker_fox said:

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

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

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


pulse_count.thumb.png.d6cdea22721cda469e1587804e544c2a.png

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, jenya7 said:

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

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

15 minutes ago, jenya7 said:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, jenya7 сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, Baser said:

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

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

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

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/24/2020 at 7:13 AM, jenya7 said:

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...