工具/软件:Starterware
大家好、我尝试将 eQEP0用于增量编码器。
因此我激活了 eQEP0、QEP 的计数就可以了。
但是、当出现索引信号时、我无法理解。
我设置 QEPCTL 中的 IEI 位是因为在索引处进行初始化。 它运行良好、当出现索引时计数变为零。
但 QEPSTS 中的 FIMF 位没有设置为索引。
有时 FIMF 设置为指数,但我找不到我错了什么。
这是我的 QEP 初始化、
........................................................................................................................................
HWREG (SOC_CONTRAL_MODULE_REG + CTRL_PWMSS)&&=~PWMSS0_TBCLKEN_ENABLE_BIT;
HWREG (PWMSS0_REG + PWM_CLKCONFIG)=((1<<eQEPCLK_EN));
while ((<eQEPCLK_EN) != ((1<<eQEPCLK_EN) & HWREG(PWMSS0_REG + PWM_CLKSTATUS)));
// pinmux 设置- QEP_A、QEP_B、QEP_INDEX、QEP_STROBE
HW_WR_REG32 ((SOC_CONTRAL_MODULE_REG + CTRL_CONF_McASP0_AHCLKX)、(eQEP_PINMUX));
HW_WR_REG32 ((SOC_CONTRAL_MODULE_REG + CTRL_CONF_McASP0_AXR1)、(eQEP_PINMUX));
HW_WR_REG32 ((SOC_CONTRAL_MODULE_REG + CTRL_CONF_McASP0_ACLKR)、(eQEP_PINMUX));
HW_WR_REG32 ((SOC_CONTRAL_MODULE_REG + CTRL_CONF_McASP0_FSR)、(eQEP_PINMUX));
HWREG (eQEP0_REG + eQEP_QDECCTL)= 0x00;
HWREGH (eQEP0_REG + eQEP_QEPCTL)|=(1<<eQEP_QEPCTL_IEI)|(1<<eQEP_QEPCTL_SWI);
HWREG (eQEP0_REG + eQEP_QPOSCNT)= 0;
HWREG (eQEP0_REG + eQEP_QPOSINIT)= eQEP_OFFSET;
HWREG (eQEP0_REG + eQEP_QPOSMAX)= pos_max + eQEP_offset;
HWREGH (eQEP0_REG + eQEP_QEPCTL)|=(1<<eQEP_QEPCTL_PHEN);
................................................................
此处未显示的所有内容均设置初始值(PRCM 除外)。
谢谢你。