iq格式问题

2019-03-26 14:55发布

最近被_iq弄得有点迷糊,还求前辈指点指点。有如下代码:#ifndef   GLOBAL_Q
#define   GLOBAL_Q       24
#endif


#define OFFSET (_IQ12(0.05))
_iq x;
_iq m;
_iq y;
x =(_iq)ADC_readResult(...); //ADC_readResult返回uint_least16_t型,为ADC结果寄存器里面的值
m = _IQ12mpy(x, OFFSET);
y = x-m;
/***************************/
记ADC结果寄存器里面的值为ADCRESULT,16位无符号整型,范围为0-4095;
则上述代码中的x=ADCRESULT/2^24,这个对吗?还是说x就直接等于ADCRESULT?(_iq)强制转换是怎么转换的?
m = _IQ12mpy(x, OFFSET); 这个该怎么计算,x还要转换成_IQ12格式吗?有点晕。。。。结果是m=ADCRESULT*0.05吗?





此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。