|
发表于 2009-8-27 15:10:09
|
显示全部楼层
回【60楼】 bure:
问题找到了,是我的问题
由于没搞懂各档采样缓冲区内数据与实际电压换算的系数,就用显示缓冲区内的数来算,又怕显示缓冲区精度不够,就放大了256倍,然后显示时再缩小256倍.导致小于256的数被256除全为0.
Vr=Km[Item_Index[Y_SENSITIVITY]]*(Scan_Buffer[q+1]-Scan_Buffer[q])/16;
Vs=(Km[Item_Index[Y_SENSITIVITY]]*(2048-Scan_Buffer[q]))/16+30720
-(((i*1024*256)%Ks[Item_Index[X_SENSITIVITY]])*Vr)/Ks[Item_Index[X_SENSITIVITY]];//转换当前波形点的值
if(Vs>MAX_Y*256)
Vs=MAX_Y*256;
else if(Vs<MIN_Y*256)
Vs=MIN_Y*256;
Signal_Buffer1=Vs;
Signal_Buffer=Vs/256;
这便是那段代码。
现在正努力分析你的代码,争取搞懂各档采样缓冲区内数据与实际电压换算的系数,这样就可以直接计算电压而不用这个笨办法了。 |
|