Как измерить ШИМ или время импульса с помощью микроконтроллера? - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь выяснить, как долго каждый импульс использует ИК-датчик. Он подключен к моему текущему микроконтроллеру (Basys MX3), но я не уверен, как считать общее время импульса.

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

1 Ответ

2 голосов
/ 04 июня 2019

Ваш микроконтроллер на самом деле PIC32MX370F512L.Если вы хотите уловить нарастающий и падающий фронт импульса, вы можете сделать это, используя прерывания уведомления об изменении ( см. Пример 12-1 здесь ).Что касается измерения времени между нарастающим и падающим фронтами, вы можете использовать аппаратный таймер, который запускается и останавливается на основе прерываний уведомления об изменении.Вы будете ограничены разрешением, на которое действительно способно ваше оборудование.Надеюсь, это достаточно хорошо.Лучшим вариантом будет использование логического анализатора или осциллографа.

...