2017-02-23 110 views
-2

我正在嘗試從ADC(adc101c02)讀取數據。通過I2C, 事情出錯時,我嘗試通過以下函數的斜率轉換到毫瓦:ADC的值永遠不會低於1mw

public double slopeToMw(double slope) 
{ 
double _result = 0; 
_result = slope/1024.0; 
_result = _result * 5.0; 
_result = _result/0.5; 
_result = _result * (100.0/0.75); 
_result = _result/1000000000.0; 
_result = Math.Pow(10.0, _result); 

//_result = Math.Pow(10, (((((slope)/1024) *5)/0.5) *(100/0.75))/1000000000) ; 


Debug.WriteLine("Milliwatts: " + _result); 

return _result; 
} 

我的問題是,產量不會低於1:讀取ADC的文件並沒有真正放棄我有很多關於我哪裏出錯的線索。

僅供參考: 當我應該測量-6,66 DBm(0.21577444092 mw)時,我從此函數返回1.000000007。

任何指針將理解

+0

這段代碼沒有任何關係到ADC,這只是一個純粹的數學計算。 – Lundin

回答

0

結果是得到從ADC毫瓦正確量我不得不交換周圍

_result = _result/1000000000.0;和 _result = Math.Pow(10.0,_result);

除以百萬之前,你做一些權力網你一個非常小的數字。