novogorny: simplify and fix coefficient

This commit is contained in:
Robert Jördens 2018-02-22 23:08:50 +01:00
parent b4ba71c7a4
commit cff85ee13b
1 changed files with 8 additions and 9 deletions

View File

@ -47,20 +47,19 @@ def adc_value(data, v_ref=5.):
"""Convert a ADC result packet to SI units (Volt)""" """Convert a ADC result packet to SI units (Volt)"""
softspan = adc_softspan(data) softspan = adc_softspan(data)
data = adc_data(data) data = adc_data(data)
g = 625
if softspan & 4: if softspan & 4:
g3 = 2 g *= 2
else:
g3 = 1
if softspan & 2: if softspan & 2:
g2 = 1 << 15 h = 1 << 15
else: else:
g2 = 1 << 16 h = 1 << 16
data = -(data & h) + (data & ~h)
if softspan & 1: if softspan & 1:
g1 = 1000 h *= 500
else: else:
g1 = 1023 h *= 512
data = -(data & g2) + (data & ~g2) v_per_lsb = v_ref*g/h
v_per_lsb = v_ref*(1250*g3)/(g1*g2)
return data*v_per_lsb return data*v_per_lsb