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.

[参考译文] TMS320F2.8335万:CCS:我正在使用用于eQEP (正交编码器)的tms320f2.8555万 DSP微控制器。在此示例中,_2833xEqep_pos_speed.c我的请求是

Guru**** 2559440 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/635713/tms320f28335-ccs-i-am-using-tms320f28555-dsp-microcontroller-for-eqep-quadrature-encoder-in-this-example_2833xeqep_pos_speed-c-my-qusetions-are

部件号:TMS320F2.8335万

 

您好,  
我正在为eQEP (正交编码器)使用tms320f2.8555万 DSP微控制器。
在此示例中,_2833xEqep_pos_speed.c我的quseare


tmp =(长)((长) pos16bval*(长) p->mech_scaler);// q0*q26 = q26
Tmp &= 0x03FFF000;
tmp =(int)(tmp>>11);// q26 -> q15


问题1.为什么mech_scalar被视为2^26/4000 (1/4000)。
问题2.为什么温度为并带有0x03FFF000;
问题3.为什么温度为>>>(右位移)与11;
问题4.为什么温度为0x7FFF并带有0x7FFF;
问题5. newp=_IQ15toIQ (tmp);在什么是_IQ15toIQ (tmp)? 如果它等于tmp/2^9,那么为什么要将tmp分成2^9?


如果(p->DirectionQep=0)// POSCNT正在倒计时

IF (newp>oldp)
Tmp1 =-(_IQ (1)- newp + oldp);// x2-x1应为负
否则
Tmp1 = newp -oldp;
}

问题7.为什么从_IQ(1)=>Tmp1 =-(_IQ(1)- newp + oldp)中减去newp - oldp? 为什么在该语句中使用_IQ (1)?

请尽早指导我们解决上述问题

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

    感谢您的提问。 您的线程已分配给一位C2000专家,很快会得到回复。

    此致,