TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 求助

哪位大侠帮我解释下:  (contronsuit 里面 2833xqep.h )

v.ElecTheta = (v.PolePairs*v.MechTheta) -floor(v.PolePairs*v.MechTheta); /* Q24 = Q0*Q24 */

为什么要减去后面的floor部分?

为什么前面的 v.MechTheta= v.MechScaler*v.RawTheta; 中 v.MechScaler 要定义成q30 格式??

部分代码是这样的:::

#define QEP_MACRO(m,v)                   \
                        \
/* Check the rotational direction */               \
     v.DirectionQep = (*eQEP[m]).QEPSTS.bit.QDF;            \
                        \
/* Check the position counter for EQEP1 */              \
     v.RawTheta = (*eQEP[m]).QPOSCNT + v.CalibratedAngle;          \
                            \
     if (v.RawTheta < 0)                  \
       v.RawTheta = v.RawTheta + (*eQEP[m]).QPOSMAX;           \
     else if (v.RawTheta > (*eQEP[m]).QPOSMAX)             \
       v.RawTheta = v.RawTheta – (*eQEP[m]).QPOSMAX;           \
                              \
/* Compute the mechanical angle */                \
 v.MechTheta= v.MechScaler*v.RawTheta;              \
/* Compute the electrical angle  */                \
    v.ElecTheta = (v.PolePairs*v.MechTheta) -floor(v.PolePairs*v.MechTheta); /* Q24 = Q0*Q24 */ \

赞(0)
未经允许不得转载:TI中文支持网 » 28335 求助
分享到: 更多 (0)