各位大神:
谁能帮忙解读一下,如下:
clarke1.As = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT1)-offsetA); // Phase A curr.
clarke1.Bs = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT2)-offsetB); // Phase B curr.
CLARKE_MACRO(clarke1)
其中_IQ12toIQ(AdcResult.ADCRESULT1)是怎么来的,为什么是_IQ12toIQ而不是_IQ14toIQ或者_IQ16toIQ,
想不通啊,这个数据类型是 UINT16 AdcResult.ADCRESULT1 范围是0~65536,而实际取值时只能取到0~4096,这是什么意思呢?
请高手帮忙解读!
liming Liu:
回复 Jay:
谢谢Jay的解答,_IQ12toIQ(N)可以理解为先把N变成Q12格式,然后再从Q12变换成Q24,包含了两步运算!
另外,问个问题,IQMATH的这些函数比如,_IQ12toIQ(N),_IQmpy2等可以看到他们的源代码么?
各位大神:
谁能帮忙解读一下,如下:
clarke1.As = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT1)-offsetA); // Phase A curr.
clarke1.Bs = _IQmpy2(_IQ12toIQ(AdcResult.ADCRESULT2)-offsetB); // Phase B curr.
CLARKE_MACRO(clarke1)
其中_IQ12toIQ(AdcResult.ADCRESULT1)是怎么来的,为什么是_IQ12toIQ而不是_IQ14toIQ或者_IQ16toIQ,
想不通啊,这个数据类型是 UINT16 AdcResult.ADCRESULT1 范围是0~65536,而实际取值时只能取到0~4096,这是什么意思呢?
请高手帮忙解读!
Jay:
回复 liming Liu:
_IQ12toIQ(N)在头文件里就可以找到对应的源代码,因为这个很简单。
_IQmyp2没有Release源代码出来。