This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMDXIDDK379D:QEP 原始 θ 计算

Guru**** 2387060 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/859165/ccs-tmdxiddk379d-qep-raw-theta-calculation

器件型号:TMDXIDDK379D

工具/软件: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、我找不到更新此变量的代码。

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    每个通道的上升沿和下降沿都被计数、这两个通道被移动90度、因此每次旋转将有4倍的边沿。

    POSCNT 是对 QEP 输入边沿进行计数的寄存器值。