大家好、
我开发了一个有刷直流运动应用、在该应用中、我希望从 QEI0获取速度和方向。 我的问题是、(对我而言、似乎是任意次数)、丢弃任何周期性、QEI_O_STAT 寄存器中的方向标志会切换、但看起来电机旋转顺畅(没有方向变化)。
我必须使用的编码器没有索引信号、因此它未连接到 CPU。 QEI 配置如下所示:
MAP_QEIConfigure (QEI0_BASE、(QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET | QEI_CONFIG_NO_SWAP)、23); MAP_QEIVelocityConfigure (QEI0_BASE、QEDEV_CONFIG、QEIV_SIMPLE_TOSIMPLE_QE0*、QE0*(QEIV_INE0*);QEIINEIV_SIMPLE_CONFIG_SIMPLE_SIMPLE_TOSIMPLE_QE0*(QE0*) MAP_QEIEnable (QEI0_BASE);
和中断处理程序、在这里我想计算当前 RPM:
void HandleInterrupt (){ MAP_QEIIntClear (QEI0_BASE、QEI_INTTIMER); //方向补偿速度 浮点速度= MAP_QEIDirectionGet (QEI0_BASE)* MAP_QEIVelocityGet (QEI0_BASE); _rpm =(**/*60Hz)*/* PulseCycle ;**/* 15Hz
我通过通过串行端口打印_rpm 的值来检查它,即使我在 HandleInterrupt()中放置了一个断点,并检查相应的 HW 寄存器,我看到方向标志发生了变化。
有人可以帮帮我吗? 原因可能是什么? 我出了什么问题?
此致、
Norbert