这是别人写的代码,请大家帮我分析下面的代码:这个是计算交流电压有效值的,看不懂什么意思?
for(i=0;i<20;i++)
{
if(Ua_adc_buf[i]>0)
sum+=Ua_adc_buf[i];
else
sum-=Ua_adc_buf[i];
}
EINT;
tmp = sum*63;
effe_Ua = tmp>>6;
tmp = sum*25;
para_efe_modbus[2] = tmp>>8;
Ua_adc_buf[i]:为从AD中读取的有符号的10位电压转换值,1ms秒读一次转换值,一共20次。但程序好像没有从零点开始读的
effe_Ua:是不是计算出来的电压有效值啊?但是这个我怎么都看不懂,是咋计算出来的。将绝对值的和*63在除以64,咋就是有效值啊,还有*25在除以256得出来的是什么值啊?
请大侠指点下?谢谢