TI论坛
直播中

张红玲

8年用户 285经验值
私信 关注
[问答]

IQ格式转换是什么意思?

   在Example_2833xEqep_pos_speed实例中,转速计算中使用到一个IQ格式转换的运算,不是很清楚,请教各位大神。
   在void POSSPEED_Calc(POSSPEED *p)函数中,有一段:
   
tmp = (long)((long)p->theta_raw*(long)p->mech_scaler); // Q0*Q26 = Q26
tmp &= 0x03FFF000;                                                                                                     ————————这是要做什么事情?
p->theta_mech = (int)(tmp>>11); // Q26 -> Q15
p->theta_mech &= 0x7FFF;                                                                                          ————————这又是要干什么?

回帖(3)

胡红枚

2020-7-14 16:54:07
这些应该是与程序功能有关的屏蔽某些位而已   与IQ格式转换没关系吧 
具体example没有看过
举报

冯敬宇

2020-7-14 16:59:19
Zone
p->theta_mech = (int)(tmp>>11); // Q26 -> Q15
p->theta_mech &= 0x7FFF;  
这里我认为是左移后,去除符号位。
Eric
                                                                         - ERIC
举报

赵爱香

2020-7-14 17:08:38
引用: guigui_7044 发表于 2020-7-14 17:46
Zone
p->theta_mech = (int)(tmp>>11); // Q26 -> Q15
p->theta_mech &= 0x7FFF;  

Eric,
你好,我借楼问一下,为什么F28335有浮点运算的能力,在TI出的编码器例程中,计算速度和位置时还要用IQ格式啊?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分