summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2020-08-26 13:32:26 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2020-08-26 13:32:26 +0200
commit6d05ba3f8a214bd5a1da340e600734b062c0756b (patch)
tree9eeb197c3c54c4fb146a98d217df929e590ca909
parent9db8eaa6a3d6e92cc2253625f55c6768727b79c4 (diff)
msp430-etv: Handle overflows in reported total energy
-rwxr-xr-xbin/msp430-etv7
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(