工具/软件:Code Composer Studio
针对每个中断检查脉冲计数和 QCTMRLUT。
设置如下:
================================================================================================================ ===
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.QEPCTL.bit.UTE = 0; //非 UTE
EQep1Regs.QEPCTL.bit.QCLM = 0; //读取 QPOSCNT = TMRLAT
EQep1Regs.QCAPCTL.BIT.UPPS = 0xF; //防止 UPEVNT 的产生
EQep1Regs.QPOSMAX = 0x0000FFFF; //最大位置= 0xFFFF
EQep1Regs.QCAPCTL.bit.CCPS = 3;
EQep1Regs.QCAPCTL.bit.CEN = 1;//启用 QEP 捕捉
EQep1Regs.QEPCTL.bit.QPEN = 1;// QEP 被启用
================================================================================================================ ===
使用该设置确认操作后、
QPOSCNT 的值将正确递增、但 QCTMRLUT 的值可能会被跳过。
增加脉冲数会增加发生的可能性。
请告诉我如何正确读取 QCTMRLUT 的值。
