跳转至

QUAD_DEC开发使用指南

迁移公告

本文档中心已迁移至 新域名(https://document.nationalchip.com/) ,当前文档中心维护有效期至 2025年6月30日。 请更新您的书签或外部链接,感谢您的支持!

QUAD_DEC开发使用指南*

第一章 功能特性*

适用于增量型旋转编码器等输出两个正交相位差为 90 度信号的设备,通过相位差可获得方向信息。最多支持 3 个通道。

主要特性

  • 可独立工作的三轴正交解码
  • 有效相位和无效相位分别采用不同计数器
  • 可编程采样率
  • 可编程的消抖滤波器

正向:

反向:

第二章 使用示例*

可以参考 appsi_mouse 里面有鼠标滚轮使用qdec的例子

具体使用见 appsi_mousepp_sensor\drv_qdec.c

支持中断获取方式和轮询获取方式

中断获取方式:

// rotary_count大于0代表正向旋转,小于0代表反向旋转
static int _drv_qdec_cb(int rotary_count, GX_HAL_QDEC_CHANNEL_T ch, void *pdata)
{
    drv_qdec_t *device = (drv_qdec_t *)pdata;

    if (device && device->decoder_cb)
    {
        return device->decoder_cb(rotary_count * device->multi);
    }

    return 0;
}

int drv_qdec_init(drv_qdec_t *device)
{
    assert(device);

    gx_quad_dec_init(QDEC_CH_X_EN, _drv_qdec_cb, device);

    return CHIP_OS_OK;
}