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

 
 
 
Reply to this topicStart new topic
> Выделение импульса из модулированного сигнала
dimka76
сообщение Sep 18 2018, 19:32
Сообщение #1


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



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

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

Прикрепленное изображение


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

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


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 18 2018, 20:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

Завести на вход таймера в режиме Capture (захват по фронту и по спаду). А также на вход другого таймера, который будет запускать (и перезапускать) отсчёт интервала таймаута по каждому спаду этого сигнала. По истечении интервала (2-го таймера) считать первое и последнее события capture из 1-го таймера и найти между ними разницу. Интервал таймаута должен быть заведомо больше периода ШИМа заполнения.
Всё.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Sep 19 2018, 16:37
Сообщение #3


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



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


Спасибо.

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

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


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 19 2018, 19:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

А Вы почитайте внимательнее что я написал. Там учитываются все Ваши нужды.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Sep 21 2018, 14:52
Сообщение #5


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



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


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

Спасибо !!!


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 2nd October 2022 - 16:21
Рейтинг@Mail.ru


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