lis2dw: add support for high performance mode

This commit is contained in:
Joey Castillo 2022-02-19 13:11:47 -05:00
parent b1bec8f187
commit 3392f73d36
2 changed files with 15 additions and 0 deletions

View File

@ -139,6 +139,17 @@ lis2dw_bandwidth_filtering_mode_t lis2dw_get_filtering(void) {
return (lis2dw_bandwidth_filtering_mode_t)retval; 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) { 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 val = watch_i2c_read8(LIS2DW_ADDRESS, LIS2DW_REG_CTRL1) & ~(0b11);
uint8_t bits = mode & 0b11; uint8_t bits = mode & 0b11;

View 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); 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); void lis2dw_set_low_power_mode(lis2dw_low_power_mode_t mode);
lis2dw_low_power_mode_t lis2dw_get_low_power_mode(void); lis2dw_low_power_mode_t lis2dw_get_low_power_mode(void);