]> git.earman.xyz Git - sensor-watch.git/commitdiff
lis2dw: add support for high performance mode
authorJoey Castillo <joeycastillo@utexas.edu>
Sat, 19 Feb 2022 18:11:47 +0000 (13:11 -0500)
committerJoey Castillo <joeycastillo@utexas.edu>
Sat, 19 Feb 2022 18:11:47 +0000 (13:11 -0500)
watch-library/shared/driver/lis2dw.c
watch-library/shared/driver/lis2dw.h

index 1b1ecf118c778302ecb5daa83aa6bb74a223d317..318ea2e89e2000031b5f6e9af5aa30efdad2e373 100644 (file)
@@ -139,6 +139,17 @@ lis2dw_bandwidth_filtering_mode_t lis2dw_get_filtering(void) {
     return (lis2dw_bandwidth_filtering_mode_t)retval;
 }
 
+void lis2dw_set_mode(lis2dw_mode_t mode) {
+    uint8_t val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1) & ~(0b1100);
+    uint8_t bits = (mode << 2) & 0b1100;
+
+    watch_i2c_write8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1, val | bits);
+}
+
+lis2dw_mode_t lis2dw_get_mode(void) {
+    return (lis2dw_mode_t)(watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1) & 0b1100) >> 2;
+}
+
 void lis2dw_set_low_power_mode(lis2dw_low_power_mode_t mode) {
     uint8_t val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1) & ~(0b11);
     uint8_t bits = mode & 0b11;
index 83b0cfb17490133aa0012faee928e19dc9f9a2f3..ac5de9290b846d2eb71f124526a1332d5f8fa78a 100644 (file)
@@ -291,6 +291,10 @@ void lis2dw_set_bandwidth_filtering(lis2dw_bandwidth_filtering_mode_t bwfilter);
 
 lis2dw_bandwidth_filtering_mode_t lis2dw_get_filtering(void);
 
+void lis2dw_set_mode(lis2dw_mode_t mode);
+
+lis2dw_mode_t lis2dw_get_mode(void);
+
 void lis2dw_set_low_power_mode(lis2dw_low_power_mode_t mode);
 
 lis2dw_low_power_mode_t lis2dw_get_low_power_mode(void);