最近在测试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);
|