интересно
10-12 на вход в прерывание, кажется.
А в этом случае надо тупо сидеть в
While(TCCRnX&(1<<ICFn))
Псевдокод для понимания
4 такта - не так уж плохо, я думал больше
Думаю что реакция в цикле while от @te238s будет не быстрее
При этом при работе через прерывание по захвату копирование значения счетчика будет выполнено автоматически.
Я тебя об этом ещё в #15 спросил, одарённый брат Коли.
Если длительность импульса известна, то зачем его измерять?
Это без POP и PUSH инструкций.
Один огурец, вход-выход 8 тактов. Половина импульса)
Значение TCNT итак аппаратно копируется в ICR независимо ни от каких прерываний. Проблема успеть забрать оттуда значение до нового захвата.
Можно попробовать:
- Выключить тактирование и сбросить предделитель.
- Настроить на захват по спаду
- В цикле ожидать фронта
- Как только так сразу включаем тактирование счётчика и спокойно не спеша читаем регистр захвата
Для поверки измерительного прибора?
Если только для проверки измерительного прибора!
Спасибо !!!
днааа … как-то не очень.
видимо да логике рассыпной гораздо проще сделать .
есть еще вариант попробовать на ESP32 там мозг побыстрее но будет ли толк в этом.
Можно и на рассыпухе конечно, но тогда при чем тут arduino и если на рассыпухе - какая разрядность счётчика нужна ?
Надо настроить:
Input Capture Edge Select
This bit selects which edge on the Input Capture pin (ICP1) that is used to trigger a capture event. When
the ICES1 bit is written to zero, a falling (negative) edge is used as trigger, and when the ICES1 bit is
written to ‘1’, a rising (positive) edge will trigger the capture.
сначала на rising edge и ждать прерывания
в прерывании считать захваченное значение, сбросить счетчик переполнений, настроить Input Capture Edge Select на ожидание falling edge и опять ждать
в прерывании считать захваченное значение и с учетом количества переполнений рассчитать длительность импульса…
разрядность не очень большая по факту 6 разрядов хватает.
ардуину хотел чтоб от макетки и пучка проводов уйти но видимо не получится.
всем спасибо.
администратору - тему можно прикрыть за отсутсвием реализации