]> git.earman.xyz Git - sensor-watch.git/commitdiff
set correct registers for range and rate
authorJoey Castillo <joeycastillo@utexas.edu>
Sun, 9 Jan 2022 17:12:41 +0000 (12:12 -0500)
committerJoey Castillo <joeycastillo@utexas.edu>
Sun, 9 Jan 2022 17:12:41 +0000 (12:12 -0500)
watch-library/driver/lis2dw.c

index 4e0cc473b582fdaba29620bb4022c7b2a38b0ada..4e506a6dd354d2f3092d72724c8bbd81271c2306 100644 (file)
@@ -92,21 +92,21 @@ lis2dw_reading lis2dw_get_raw_reading(void) {
 }
 
 void lis2dw_set_range(lis2dw_range_t range) {
-    uint8_t val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL4) & 0xCF;
+    uint8_t val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL6) & ~(LIS2DW_RANGE_16_G << 4);
     uint8_t bits = range << 4;
 
-    watch_i2c_write8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL4, val | bits);
+    watch_i2c_write8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL6, val | bits);
 }
 
 lis2dw_range_t lis2dw_get_range(void) {
-    uint8_t retval = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL4) & 0x30;
+    uint8_t retval = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL6) & (LIS2DW_RANGE_16_G << 4);
     retval >>= 4;
     return (lis2dw_range_t)retval;
 }
 
 
 void lis2dw_set_data_rate(lis2dw_data_rate_t dataRate) {
-    uint8_t val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1) & 0x0F;
+    uint8_t val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1) & ~(0b1111 << 4);
     uint8_t bits = dataRate << 4;
 
     watch_i2c_write8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1, val | bits);