DSP

DSP代码学习记录

2019-07-13 16:14发布

class="markdown_views prism-atom-one-light"> 具体是项目工程代码。 (Var)=((Var)>=(Max))?(Max):(Var)//意思是if var>=max,则var+max,否则,var=var k |= SW1_VALUE//位或,意思是把k的值和SW1_VALUE位按位或后,然后再赋值给SW1_VALUE。 if (ShadowScanState.bit.ScanFlag)是什么意思?shadowcanstate是阴影面积扫描吗 计算Id_reference的时候,首先是计算f32VboostErr,然后对gain进行限定,然后通过BusCon_Reg.f32BusErr_New = f32VboostGain * f32VboostErr计算出Bus_error;然后计算出Bus_ Err_new,就算这个是为了得到BusIL-ref,如果说放电状态,则把BusIL-ref赋值给IL_Peak_ref,这个在以后计算currentPID的时候会用到;
  • 关于平均值和有效值的计算:
    有效值:
AD_Acc.f32RmsGFCI += ADValue.f32GFCI * ADValue.f32GFCI; AD_Sum.f32RmsGFCI = AD_Acc.f32RmsGFCI; RealValue.f32RmsGFCI = sqrt(AD_Sum.f32RmsGFCI * f32rcnt); 通过上面的三次转换就知道rms值是怎么计算得到的了。其他的都一样;
平均值:
平均值的计算就比较简单了; AD_Acc.f32GFCI += ADValue.f32GFCI; AD_Sum.f32GFCI = AD_Acc.f32GFCI; RealValue.f32GFCI = (AD_Sum.f32GFCI * f32rcnt);