summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sensors/accelerometer/adxl345.vala10
1 files changed, 5 insertions, 5 deletions
diff --git a/sensors/accelerometer/adxl345.vala b/sensors/accelerometer/adxl345.vala
index 3cc8be7..a90e792 100644
--- a/sensors/accelerometer/adxl345.vala
+++ b/sensors/accelerometer/adxl345.vala
@@ -14,8 +14,8 @@
*/
public class ADXL345 : I2CDevice, Accelerometer {
- /* ADXL345 3.9mG per LSB */
- private static const double scale_factor = (3.9 / 1000.0);
+ private static const double MG_PER_LSB = 3.9;
+ private static const double MG_PER_G = 1000.0;
public ADXL345(uint8 dev, uint8 addr = 0x53) throws I2CError {
setup(dev, addr);
@@ -61,9 +61,9 @@ public class ADXL345 : I2CDevice, Accelerometer {
public void get_data(out double x, out double y, out double z) throws I2CError {
var data = get_block(0x32, 6);
- x = (data[0] | data[1] << 8) * scale_factor;
- y = (data[2] | data[3] << 8) * scale_factor;
- z = (data[4] | data[5] << 8) * scale_factor;
+ x = ((int16) (data[0] | data[1] << 8) * MG_PER_LSB) / MG_PER_G;
+ y = ((int16) (data[2] | data[3] << 8) * MG_PER_LSB) / MG_PER_G;
+ z = ((int16) (data[4] | data[5] << 8) * MG_PER_LSB) / MG_PER_G;
}
}