Документация Engee

Artery Encoder

Чтение квадратурного энкодера через таймер микроконтроллера.

Тип: CFunction

Путь в библиотеке:

/Interfaces/Targets/Artery/Artery Encoder

Описание

Для работы с блоком установите/обновите пакет поддержки оборудования.

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

Конфигурирование AT32 Workbench

AT32 Workbench не генерирует код для режима энкодера автоматически. Требуется ручная вставка вызова tmr_encoder_mode_config() в пользовательской секции сгенерированного файла wk_tmr.c.

  1. В AT32 Workbench выберите нужный таймер.

  2. Настройте два канала таймера как входы:

    • для Channel1 mode установите Input direct mode;

    • для Channel2 mode установите Input direct mode;

    • для остальных каналов установите Disable.

    artery encoder timer mode

  3. Настройте параметры счетчика в Counter Settings:

    • Period Value (ARR) — разрешение энкодера.

      artery encoder timer params

  4. Сгенерируйте проект (Generate Code).

  5. Откройте сгенерированный файл project/src/wk_tmr.c, найдите функцию wk_tmrX_init() (где X — номер вашего таймера) и добавьте вызов tmr_encoder_mode_config() в пользовательской секции перед инициализацией GPIO:

    /* add user code begin tmrX_init 1 */
    
    tmr_encoder_mode_config(TMRX,
        TMR_ENCODER_MODE_C,
        TMR_INPUT_RISING_EDGE,
        TMR_INPUT_RISING_EDGE);
    
    /* add user code end tmrX_init 1 */

    Здесь TMR_ENCODER_MODE_C — режим квадратурного энкодера (счет по обоим каналам). Доступные режимы:

    Режим Описание

    TMR_ENCODER_MODE_A

    Счет по фронтам TI1

    TMR_ENCODER_MODE_B

    Счет по фронтам TI2

    TMR_ENCODER_MODE_C

    Счет по обоим каналам (TI1+TI2) — для квадратурного энкодера

Порты

Выход

# Count — значение счетчика энкодера
скаляр

Details
Типы данных

UInt32

Поддержка комплексных чисел

Нет

Параметры

Main group

# Таймер: — номер таймера микроконтроллера
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20

Details
Значения

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20

Значение по умолчанию

1

Имя для программного использования

m_tim_num

Настраиваемый

Нет

Вычисляемый

Да