From 9420a0b4d77934a4bea670396dce08946e8b1be2 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 24 Jul 2019 03:37:42 -0400 Subject: [PATCH] fixing voltage read problem --- afsk/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 42b49265..1d6af9d2 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -117,8 +117,11 @@ struct SensorData read_sensor_data(struct SensorConfig sensor) { int twos = twosToInt(valuec1, 16); // currently doesn't read negative currents correctly float valuec3 = (float)(twos); data.current = valuec3 / (float)sensor.currentDivider; - uint16_t value2 = (uint16_t)wiringPiI2CReadReg16(sensor.fd, INA219_REG_BUSVOLTAGE); - data.voltage = ((double)(value2 >> 3) * 4) / 1000; +// uint16_t value2 = (uint16_t)wiringPiI2CReadReg16(sensor.fd, INA219_REG_BUSVOLTAGE); +// data.voltage = ((double)(value2 >> 3) * 4) / 1000; + valuec1 = wiringPiI2CReadReg16(sensor.fd, INA219_REG_BUSVOLTAGE); + data.voltage = ((double)((uint16_t)valuec1 >> 3) * 4) / 1000; + data.power = (float)((uint16_t)wiringPiI2CReadReg16(sensor.fd, INA219_REG_POWER)) * (float)sensor.powerMultiplier; return data;