工具/软件:Code Composer Studio
我正在尝试使用 UPEVNT 和 QCPRDLAT 检查脉冲之间的时间。
设置如下:
===================================================================================================
GpioCtrlRegs.GPAQSEL2.bit.GPIO20 = 2;//将 GPIO20与 SYSCLK 6样本同步(EQEP1A)
GpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 2;//将 GPIO21与 SYSCLK 6样本同步(EQEP1B)
GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 2;//将 GPIO23与6个 SYSCLK 采样同步(EQEP1I)
EQep1Regs.QDECCTL.bit.QSRC = 00; //正交计数模式
EQep1Regs.QEPCTL.bit.free_soft = 2;
EQep1Regs.QEPCTL.bit.PCRM = 01;
EQep1Regs.QUPRD = 3125; // 125us
EQep1Regs.QEPCTL.bit.UTE=1; //单元定时器使能
EQep1Regs.QEPCTL.bit.QCLM=1; //锁存单元定时器
EQep1Regs.QCAPCTL.BIT.UPPs=2; // 1/4表示单元位置
EQep1Regs.QPOSMAX = 0x0000FFFF; //最大位置= 0xFFFF
EQep1Regs.QCAPCTL.bit.CCPS = 3;
EQep1Regs.QCAPCTL.bit.CEN = 1;//启用 QEP 捕捉
EQep1Regs.QEPCTL.bit.QPEN = 1;// QEP 被启用
===================================================================================================
检查此设置可能会返回 QCPRDLAT = 0xFFFF。
此时、EQep1Regs.QEPSTS.bit.COEF 为0。
该 eQEP 会检查电机脉冲、电机正在开发中、
因此、运行不稳定、并且它不处于一个方向正确旋转的状态。
在这种情况下、返回0xFFFF 的条件是什么?
