diff options
-rwxr-xr-x | bin/msp430-etv | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/bin/msp430-etv b/bin/msp430-etv index 9ed7c97..504f4f1 100755 --- a/bin/msp430-etv +++ b/bin/msp430-etv @@ -212,6 +212,8 @@ if __name__ == "__main__": data = np.empty((data_count - opt["skip"], 4)) + energy_overflow_count = 0 + prev_total_energy = 0 for i, line in enumerate(data_lines): if i >= opt["skip"]: fields = line.split(" ") @@ -222,11 +224,14 @@ if __name__ == "__main__": timestamp, current, voltage, total_energy = map(int, fields[1:]) else: raise RuntimeError('cannot parse line "{}"'.format(line)) + if total_energy < 0 and prev_total_energy > 0: + energy_overflow_count += 1 + prev_total_energy = total_energy + total_energy += energy_overflow_count * (2 ** 32) data[i - opt["skip"]] = [timestamp, current, voltage, total_energy] m_duration_us = data[-1, 0] - data[0, 0] m_energy_nj = data[-1, 3] - data[0, 3] - # mV * nA * us = aJ (1e-18 J) -> use factor 1e-6 to get pJ (1e-12 J) print( "{:d} measurements in {:.2f} s = {:.0f} Hz sample rate".format( |