微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于ARM的QEI增量编码器

关于ARM的QEI增量编码器

时间:10-02 整理:3721RD 点击:

大家好,我是一个新手。在使用ARM进行segway控制过程中发现一个问题,就是ARM的QEI增量编码器只能往一个方向进行累加,如果方向相反了则会出现不计数或者计数错误,请问我该怎么做才能让它在两个方向都计数呢?我的意思是在一个方向进行增计数,另一个方向减计数。
void QEIINI(void)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI1);
    QEIConfigure(QEI0_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET |QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 0xffffffff);
    QEIConfigure(QEI1_BASE, (QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET |QEI_CONFIG_QUADRATURE | QEI_CONFIG_NO_SWAP), 0xffffffff);
    QEIVelocityConfigure(QEI0_BASE, QEI_VELdiv_1, SysCtlClockGet() / 100); //dt = 10ms
    QEIVelocityConfigure(QEI1_BASE, QEI_VELdiv_1, SysCtlClockGet() / 100); //dt = 10ms
}
我看设置了,没有正反计数的选项啊

QEI 模块都会提供计数器脉冲和计数方向的,如果没有小编可以自己使用一个GPIO来检测计数方向

可以在检查下硬件的驱动,这个应该是有的,可以通过中断检测到电机绝对位置,也就可以判断了方向。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top