主题中讨论的其他器件: C2000WARE
您好,
我将 tms320f28379D DSP 微控制器用于 eQEP (正交编码器)。
在此示例中、我的使用是279dxEqep_pos_speed.c
tmp =(long)((long) pos16bval*(long) 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;
问题5. newp=_IQ15toIq (tmp)的含义是什么;其中_IQ15toIq (tmp)是什么? 如果它等于 tmp/2^9,那么为什么我们将 tmp2^9重新分配?
如果(p->DirectionQep=0)// POSCNT 正在递减计数
{
如果(newp>oldp)
Tmp1 =-(_IQ (1)- newp + oldp);// x2-x1应该为负
其他
Tmp1 = newp -oldp;
}
问题7. 为什么从_IQ(1)=> Tmp1 =-(_IQ(1)- newp + oldp)中减去 newp - oldp? 为什么在该语句中使用_IQ (1)?
请尽早指导我们解决上述问题