工具/软件:Code Composer Studio
由于"(* eQEP[m]).QPOSMAX 的性质、我无法理解原始 θ 的计算。 这是示例项目中的代码。
--------
/*检查 EQEP1的位置计数器*/\
V.RawTheta =(* eQEP[m]).QPOSCNT + v.CalibratedAngle;\
如果(v.RawTheta < 0)\
V.RawTheta = v.RawTheta +(* eQEP[m]).QPOSMAX;\
否则、如果(v.RawTheta >(* eQEP[m]).QPOSMAX)\
V.RawTheta = v.RawTheta -(* eQEP[m]).QPOSMAX;
--------
问题在于 (* eQEP[m]).QPOSMAX = 4* v.LineEncoder
我假设 v.LineEncoder 等于编码器电机旋转一圈所具有的位置数。 那么、为什么在重置之前、RawTheta 应该递增计数4次电机旋转? 它不应该从0到 v.LineEncoder 并复位回0?
此外、如何更新 QPOSCNT、我找不到更新此变量的代码。
谢谢你