Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Алгоритмы ЦОС (DSP) _ Выделение импульса из модулированного сигнала

Автор: dimka76 Sep 18 2018, 19:32

Здравствуйте.

На микроконтроллер приходят импульсы логического сигнала длительностью от 10 до 500 мСек.
Эти импульсы могут быть заполнены ШИМ с частотой порядка 1-2 кГц и скважностью
от 0,1 до 0,9. Можно представить это как амплитудно модулированный сигнал.



А могут быть и не заполненными.
С измерением длительности не заполненного импульса проблем нет. А вот как измерить длительность
импульса, если он заполнен ШИМ ?

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

Автор: jcxz Sep 18 2018, 20:23

Цитата(dimka76 @ Sep 18 2018, 22:32) *
С измерением длительности не заполненного импульса проблем нет. А вот как измерить длительность
импульса, если он заполнен ШИМ ?

Завести на вход таймера в режиме Capture (захват по фронту и по спаду). А также на вход другого таймера, который будет запускать (и перезапускать) отсчёт интервала таймаута по каждому спаду этого сигнала. По истечении интервала (2-го таймера) считать первое и последнее события capture из 1-го таймера и найти между ними разницу. Интервал таймаута должен быть заведомо больше периода ШИМа заполнения.
Всё.

Автор: dimka76 Sep 19 2018, 16:37

Цитата(jcxz @ Sep 18 2018, 23:23) *
Завести на вход таймера в режиме Capture (захват по фронту и по спаду). А также на вход другого таймера, который будет запускать (и перезапускать) отсчёт интервала таймаута по каждому спаду этого сигнала. По истечении интервала (2-го таймера) считать первое и последнее события capture из 1-го таймера и найти между ними разницу. Интервал таймаута должен быть заведомо больше периода ШИМа заполнения.
Всё.


Спасибо.

Но как быть если импульсы не будут модулированы ?

Тогда по истечении интервала 2-го таймера проверять значение пина, если 0, то все, если 1,
то 2-ой таймер продолжает заного отсчитывать свой период.
И так по кругу, пока пин не примет значение 0.

Автор: jcxz Sep 19 2018, 19:26

Цитата(dimka76 @ Sep 19 2018, 19:37) *
Но как быть если импульсы не будут модулированы ?

А Вы почитайте внимательнее что я написал. Там учитываются все Ваши нужды.

Автор: dimka76 Sep 21 2018, 14:52

Цитата(jcxz @ Sep 19 2018, 22:26) *
А Вы почитайте внимательнее что я написал. Там учитываются все Ваши нужды.


Да, действительно не внимательно прочитал. Все так как надо !!!

Спасибо !!!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)