Счетчик времени установки
Как настроить Due для автоматического подсчета возрастающих ребер на выводе, не тратя время на ISR?
У меня есть несколько кодеров колес, упрощенная реализация-это меньшее направление, где вы учитываете только растущие края.
Я пошел по пути автоматического подсчета возрастающих ребер, и ISR на таймере периодически будет показывать текущее количество
@FourierFlux, 👍0
Обсуждение1 ответ
Лучший ответ:
Вам нужно выбрать таймер, который больше ни для чего не используется, и настроить его как простой счетчик с источником синхронизации, установленным на внешний вывод часов для этого таймера.
На уровне блока входные тактовые сигналы каждого канала могут быть либо подключены к внешним входам 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.
- Чтение двух квадратурных кодировщиков с помощью одного ардуино
- Как настроить выводы ввода-вывода второго квадратурного декодера в Arduino IDE
- Сможет ли Arduino Uno считывать 3-кратные инкрементальные энкодеры?
- Кодировщик колес Arduino DUE
- Arduino Due vs Mega 2560
- Точность часов времени Arduino
- Регистры ввода-вывода SAM3X8E (Arduino Due)
- Считывание нескольких поворотных энкодеров
что это значит? ...
тратить время на ИСР
, @jsotolaчто это значит? ...
таймер будет периодически отключаться
, @jsotolaэти вопросы задавались и отвечались много раз ... этот сайт не является учебным форумом, поэтому, пожалуйста, сначала проведите исследование, а затем задавайте вопросы о любых проблемах, с которыми вы сталкиваетесь, @jsotola
Из того, что я понимаю, Due имеет счетчик с внутренней схемой вместо ISR, используемого для подсчета., @FourierFlux
У вас есть ссылка на это заявление?, @PMF
Обычно я настраиваю таймер/счетчик для использования внешних часов. Похоже, atsamd делает это по-другому и использует настройку "рассчитывать на событие". Прочтите таблицу данных и посмотрите, понимаете ли вы ее (я не понимаю с беглого взгляда)., @Majenko
На самом деле я смотрел на SAMD21, а не на SAM3X из-за этого. Это, кажется, имеет TCLK0-TCLK2 в качестве тактовых входов для таймеров. В главе 36 таблицы они подробно описаны., @Majenko