例程中
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_1);
value = _IQ12mpy(value,current_sf) – obj->adcBias.I.value[0];
ad结果强制 转换 IQ24, 为什么 乘个 系数要用 IQ12 ?
Green Deng:这里使用的是标幺化的处理,数据格式是Q24的结构,所以一个12位的ADC,其实就是一个Q12的数据,再通过IQ12mpy处理成Q24,这就变成了标幺值,然后再乘以硬件系数值。
例程中
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_1);
value = _IQ12mpy(value,current_sf) – obj->adcBias.I.value[0];
ad结果强制 转换 IQ24, 为什么 乘个 系数要用 IQ12 ?
user1303469:
回复 Green Deng:
我问的是 为什么是IQmpy12,这里面是怎么算的?
例程中
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_1);
value = _IQ12mpy(value,current_sf) – obj->adcBias.I.value[0];
ad结果强制 转换 IQ24, 为什么 乘个 系数要用 IQ12 ?
naughty boy:
回复 user1303469:
在controlSUITE软件中有关于IQ的详细介绍C:\ti\controlSUITE\libs\math\IQmath\v160\doc
TI中文支持网![TMS320F28379D: 导入例程出现故障Description Resource Path Location Type gmake: *** [gridconnectedinvlclfltr.obj] Error 1 gridConnectedInverterLCLFltr C/C++ Problem-TI中文支持网](https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_C2000_pastedimage1752114958744v1.jpg)


