最近在测试QEP模块的时候,用PWM模拟AB两路信号进行测试,测试结果转速计算准确稳定,但是发现转角计算过程会有跳变。寄存器值附图,请问各位有可能是什么原因造成这种现象的。跳变的是电气角。- p->RawTheta = EQep1Regs.QPOSCNT + p->CalibrateAngle; //CalibrateAngle=0;
- if(p->RawTheta < 0)
- {
- p->RawTheta = p->RawTheta + EQep1Regs.QPOSMAX;
- }
- else if(p->RawTheta > EQep1Regs.QPOSMAX)
- {
- p->RawTheta = p->RawTheta - EQep1Regs.QPOSMAX;
- }
- //Compute the mechanical angle
- p->MechTheta = p->Mech_Scaler * p->RawTheta;
- //Compute the electrical angle
- p->ElecTheta = (p->PolePairs * p->MechTheta)-floor(p->PolePairs * p->MechTheta);
|