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

Потому и флуд, что вопрос правильно задать не можешь.

задал как смог . и многие поняли !

Так ты читать не умеешь. На этот “дельный совет” - ты ответил, что тебе это не подходит :slight_smile:

Хотя о чем я… умел бы - и на форуме не пришлось бы спрашивать, вопрос-то стандартный, в любой методичке по таймерам разобран

Все элементарно.
Запускаем таймер, без всяких прерываний.
По нажатию кнопки (можно в прерывании), запоминаем значение TCNT, по отпусканию(тоже лучше в прерывании) из текущего TCNT вычитаем тот, что запомнили. Получаем сколько натикало.
Главное что бы таймер не успел два раза переполниться.

Верно, только зачем изобретать велосипед?
Режим захвата делает ровно это же

Ну, да, так и есть. На один нормальный вопрос, десять таких как Ваш :frowning:

И ответили “как смогли”. Каков вопрос, таков и ответ.

3 лайка

так и хорошо что как смогли ! сейчас еще кто нибудь поднакидет вариантов . завтра уже можно будет детально посмотреть реализации как и что сделать можно .

P:S = дело для меня это новое еще неведомое

Из ваших слов похоже, что сами вы изучать документацию не планируете, ждете пока кто-то вам “варианты накидает”. Может и на код надеетесь? - это зря

Ну затем, что таймер целиком под эту задачу не выделяется. Его можно использовать параллельно в задачах, где сброс таймера не используется.
Да и тупо просто запустить таймер и читать регистр счета проще, чем настраивать режимы захват/сравнение.

А может таки попробуете прочитать материал Гэммона, который Вам посоветовали? И на завтра никакой работы не останется.

Впрочем, дело хозяйское.

2 лайка

на код не надеюсь вообще .
примеры смотрел но 99% примеров копируют сами себя и рботают только на старт от прерывания и на стоп от переполнения

обязательно почитаю ! возможно чтото еще полезное найдется.

Он по умолчанию уже запущен с предделителем 64(Насколько помню).
Вот и работай со счетным регистром TCNT1 как с миллис().

Отнюдь! Все таймеры выключены, предделитель 0.
Ну в Ардуино ИДЕ ладно, миллисы вроде как по умолчанию.
Хотя непонятно в какой среде у ТСа мегапроект.

стал читать о imput capture и тут вычитал что
Всё красиво, всё хорошо. Но вот беда. Атмельцы не сделали возможность сбрасывать/запускать таймер по событию! Таймер крутится в цикле, снимается его мгновенное значение, а дальше делай с ним что хочешь.

вот он собственно источник https://we.easyelectronics.ru/AVR/timers-capture-mode-ili-pravilnaya-rabota-s-taymerom-v-rezhime-zahvata.html

какаято скука … придется остаться на логике рассыпной

В Ардуино ИДЕ в АВР все три таймера запущены сразу , чтобы работали ШИМ выходы

1 лайк

И что?
Как это мешает измерить период входящего сигнала?
Вы читайте статью дальше, там все расписано.

Распечатай в сетап значение регистра TCCR0B, TCCR1B и TCCR2B и узнаешь

Теперь к этой среде я ещё хуже отношусь🤮

А почему нет? Тикающие таймеры не расходуют ресурсов и не загружают ядра