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

    

Выделение импульса из модулированного сигнала

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

 

На микроконтроллер приходят импульсы логического сигнала длительностью от 10 до 500 мСек.

Эти импульсы могут быть заполнены ШИМ с частотой порядка 1-2 кГц и скважностью

от 0,1 до 0,9. Можно представить это как амплитудно модулированный сигнал.

 

post-16032-1537298845_thumb.jpg

 

А могут быть и не заполненными.

С измерением длительности не заполненного импульса проблем нет. А вот как измерить длительность

импульса, если он заполнен ШИМ ?

 

Можно конечно было бы применить какой-либо фильтр, но хотелось бы обойтись простыми средствами

без лишней вычислительной нагрузки. Или с минимальными вычислениями.

 

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


Ссылка на сообщение
Поделиться на другие сайты
С измерением длительности не заполненного импульса проблем нет. А вот как измерить длительность

импульса, если он заполнен ШИМ ?

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

Всё.

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


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

Всё.

 

Спасибо.

 

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

 

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

то 2-ой таймер продолжает заного отсчитывать свой период.

И так по кругу, пока пин не примет значение 0.

 

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
А Вы почитайте внимательнее что я написал. Там учитываются все Ваши нужды.

 

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

 

Спасибо !!!

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация