Включить и выключить таймер (ардуино нано)

интересно

10-12 на вход в прерывание, кажется.
А в этом случае надо тупо сидеть в

While(TCCRnX&(1<<ICFn))

Псевдокод для понимания

image

4 такта - не так уж плохо, я думал больше

Думаю что реакция в цикле while от @te238s будет не быстрее
При этом при работе через прерывание по захвату копирование значения счетчика будет выполнено автоматически.

Я тебя об этом ещё в #15 спросил, одарённый брат Коли.
Если длительность импульса известна, то зачем его измерять?

1 лайк

Это без POP и PUSH инструкций.
Один огурец, вход-выход 8 тактов. Половина импульса)

Значение TCNT итак аппаратно копируется в ICR независимо ни от каких прерываний. Проблема успеть забрать оттуда значение до нового захвата.
Можно попробовать:

  1. Выключить тактирование и сбросить предделитель.
  2. Настроить на захват по спаду
  3. В цикле ожидать фронта
  4. Как только так сразу включаем тактирование счётчика и спокойно не спеша читаем регистр захвата

Для поверки измерительного прибора?

Если только для проверки измерительного прибора!

2 лайка

Спасибо !!!
днааа … как-то не очень.
видимо да логике рассыпной гораздо проще сделать .
есть еще вариант попробовать на 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 разрядов хватает.
ардуину хотел чтоб от макетки и пучка проводов уйти но видимо не получится.
всем спасибо.

администратору - тему можно прикрыть за отсутсвием реализации