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

STM32 32-битный таймер для захвата из двух 16-битных - как?

Железо разведено для использования входа у канала 2 таймера 2. Тактовая частота таймера -- системная по-максимуму.

 

Хотелось бы, чтобы таймер был 32-битным, т.е. к нему надо как-то приляпать 2-ой таймер. Не пойму, как это можно сделать. Получается (пока чисто теретически), что с ведущего таймера можно подать либо счетные импульсы, либо сигнал захвата, но никак ни оба сигнала одновременно.

 

Или здесь есть какой-то трюк?

 

Пока в голову приходит только брать сигнал захвата с ведущего таймера, а тактовую частоту для зависимого брать системную, но поделенную предделителем (у которого коэффициент деления такой же, как и у 1-го таймера). И оба таймера стартовать синхронно.

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


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

Можно вроде сигнал переполнения ведущего таймера завести на вход ведомого таймера.

Первый таймер будет выступать как делитель для второго таймера. об этом можно прочитать на странице 350 RM0008 Reference manual

разделы:

14.3.15 Timer synchronization

Using one timer as prescaler for the another.

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


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

Можно-то можно, да только модуль для связи TRG0->TRGI у таймера только один. Как тогда заводить еще и сигнал "capture"?

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


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

Есть вариант обойтись без второго таймера. Достаточно успеть обработать прерывание (прочитать CAP REG) до того как таймер успеет пройти целый "круг" относительно точки захвата. Для работы понадобится активировать прерывание (MAT) по переполнению таймера (65535->0) и там программно инкрементить старшие/мнимые 16 бит где-то в переменной. Плюс в прерывании CAP понадобятся несколько сравнений.

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


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

Вам нужен захват при 32-х разрядном таймере? Попробуйте сделать первый таймер ведомым, а тактировать его вторым. Т.е. Счетные импульсы по переполнению ведущего таймера будут подаваться на вход ведомого таймера в котором настроен модуль захвата.

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


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

Есть вариант обойтись без второго таймера. Достаточно успеть обработать прерывание (прочитать CAP REG) до того как таймер успеет пройти целый "круг" относительно точки захвата. Для работы понадобится активировать прерывание (MAT) по переполнению таймера (65535->0) и там программно инкрементить старшие/мнимые 16 бит где-то в переменной. Плюс в прерывании CAP понадобятся несколько сравнений.

 

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

 

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


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

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

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

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

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

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

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

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

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

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