Счетчик времени установки

Как настроить Due для автоматического подсчета возрастающих ребер на выводе, не тратя время на ISR?

У меня есть несколько кодеров колес, упрощенная реализация-это меньшее направление, где вы учитываете только растущие края.

Я пошел по пути автоматического подсчета возрастающих ребер, и ISR на таймере периодически будет показывать текущее количество

, 👍0

Обсуждение

что это значит? ... тратить время на ИСР, @jsotola

что это значит? ... таймер будет периодически отключаться, @jsotola

эти вопросы задавались и отвечались много раз ... этот сайт не является учебным форумом, поэтому, пожалуйста, сначала проведите исследование, а затем задавайте вопросы о любых проблемах, с которыми вы сталкиваетесь, @jsotola

Из того, что я понимаю, Due имеет счетчик с внутренней схемой вместо ISR, используемого для подсчета., @FourierFlux

У вас есть ссылка на это заявление?, @PMF

Обычно я настраиваю таймер/счетчик для использования внешних часов. Похоже, atsamd делает это по-другому и использует настройку "рассчитывать на событие". Прочтите таблицу данных и посмотрите, понимаете ли вы ее (я не понимаю с беглого взгляда)., @Majenko

На самом деле я смотрел на SAMD21, а не на SAM3X из-за этого. Это, кажется, имеет TCLK0-TCLK2 в качестве тактовых входов для таймеров. В главе 36 таблицы они подробно описаны., @Majenko


1 ответ


Лучший ответ:

2

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

На уровне блока входные тактовые сигналы каждого канала могут быть либо подключены к внешним входам TCLK0, TCLK1, либо TCLK2 или быть подключенным к внутренним сигналам ввода-вывода TIOA0, TIOA1 или TIOA2 для объединения в цепочку путем программирования TC Регистр режима блокировки (TC_BMR). См. Рис. 36-2. Каждый канал может независимо выбрать внутренний или внешний источник тактовой частоты для своего счетчика:

  • Внешние тактовые сигналы(1): XC0, XC1 или XC2
  • Внутренние тактовые сигналы: MCK/2, MCK/8, MCK/32, MCK/128, SLCK Этот выбор производится битами TCCLKS в регистре режима канала TC (TC_CMR).

Я лично не знаком с периферийными устройствами Due, но в главе 36 спецификации SAM3X подробно описана работа и регистры, которые вам необходимо установить.

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

,