dimka76 62 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба Здравствуйте. На микроконтроллер приходят импульсы логического сигнала длительностью от 10 до 500 мСек. Эти импульсы могут быть заполнены ШИМ с частотой порядка 1-2 кГц и скважностью от 0,1 до 0,9. Можно представить это как амплитудно модулированный сигнал. А могут быть и не заполненными. С измерением длительности не заполненного импульса проблем нет. А вот как измерить длительность импульса, если он заполнен ШИМ ? Можно конечно было бы применить какой-либо фильтр, но хотелось бы обойтись простыми средствами без лишней вычислительной нагрузки. Или с минимальными вычислениями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 18 сентября, 2018 Опубликовано 18 сентября, 2018 · Жалоба С измерением длительности не заполненного импульса проблем нет. А вот как измерить длительность импульса, если он заполнен ШИМ ? Завести на вход таймера в режиме Capture (захват по фронту и по спаду). А также на вход другого таймера, который будет запускать (и перезапускать) отсчёт интервала таймаута по каждому спаду этого сигнала. По истечении интервала (2-го таймера) считать первое и последнее события capture из 1-го таймера и найти между ними разницу. Интервал таймаута должен быть заведомо больше периода ШИМа заполнения. Всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 19 сентября, 2018 Опубликовано 19 сентября, 2018 · Жалоба Завести на вход таймера в режиме Capture (захват по фронту и по спаду). А также на вход другого таймера, который будет запускать (и перезапускать) отсчёт интервала таймаута по каждому спаду этого сигнала. По истечении интервала (2-го таймера) считать первое и последнее события capture из 1-го таймера и найти между ними разницу. Интервал таймаута должен быть заведомо больше периода ШИМа заполнения. Всё. Спасибо. Но как быть если импульсы не будут модулированы ? Тогда по истечении интервала 2-го таймера проверять значение пина, если 0, то все, если 1, то 2-ой таймер продолжает заного отсчитывать свой период. И так по кругу, пока пин не примет значение 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 19 сентября, 2018 Опубликовано 19 сентября, 2018 · Жалоба Но как быть если импульсы не будут модулированы ? А Вы почитайте внимательнее что я написал. Там учитываются все Ваши нужды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 21 сентября, 2018 Опубликовано 21 сентября, 2018 · Жалоба А Вы почитайте внимательнее что я написал. Там учитываются все Ваши нужды. Да, действительно не внимательно прочитал. Все так как надо !!! Спасибо !!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться