AnyMath 文档

Artery Encoder

通过微控制器定时器读取正交编码器。

模块类型: CFunction

库中的路径:

/Interfaces/Targets/Artery/Artery Encoder

资料描述

要使用该块,请安装/更新支持包。 设备

Artery Encoder 它用于在编码器模式下读取连接到定时器通道的正交编码器。 在第一步中,计时器在编码器模式下启动。 定时器计数器值输出到块输出。

配置AT32工作台

*AT32工作台*不会自动生成编码器模式的代码。 需要手动插入呼叫 tmr_encoder_mode_config() 在生成的文件的用户部分 wk_tmr。c.

  1. 在*AT32工作台*中,选择所需的计时器。

  2. 设置两个定时器通道作为输入: *for*Channel1模式*set 输入直接模式; *for*Channel2模式*set 输入直接模式; *对于其余通道,设置 禁用.

    artery encoder timer mode

  3. 在*计数器设置中配置计数器设置*:

**周期值(ARR)*是编码器的分辨率。

+ artery encoder timer params

  1. 生成项目(生成代码)。

  2. 打开生成的文件 项目/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)—用于正交编码器

港口

输出

# 计数 — 编码器计数器的值
标量,标量

Details
数据类型

UInt32

复数支持

非也。

参数

主分组

# Таймер: — 微控制器定时器编号
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

可调谐

可计算