@@ -139,18 +139,21 @@ void CoreIMU::disableDeepSleep()
139
139
140
140
void CoreIMU::enableOnWakeUpInterrupt (std::function<void ()> const &callback)
141
141
{
142
+ // ODR = 52Hz for reference
143
+
142
144
// ? Set filter and disable user offset
143
145
lsm6dsox_xl_hp_path_internal_set (&_register_io_function, LSM6DSOX_USE_SLOPE);
144
146
lsm6dsox_xl_usr_offset_on_wkup_set (&_register_io_function, 0 );
145
147
146
148
// ? Set Wakeup config
147
- lsm6dsox_wkup_threshold_set (&_register_io_function, 2 );
148
- lsm6dsox_wkup_ths_weight_set (&_register_io_function, LSM6DSOX_LSb_FS_DIV_64);
149
- lsm6dsox_wkup_dur_set (&_register_io_function, 0x02 );
149
+ lsm6dsox_wkup_threshold_set (&_register_io_function, 3 ); // LSB multiplier / Max: 31
150
+ lsm6dsox_wkup_ths_weight_set (&_register_io_function,
151
+ LSM6DSOX_LSb_FS_DIV_64); // 2 Weights, 1 LSB = FS_XL/2^x x:{6,8}
152
+ lsm6dsox_wkup_dur_set (&_register_io_function, 1 ); // 1 LSB = 1*ODR_time / Max: 3
150
153
151
154
// ? Set Activity config
152
- lsm6dsox_act_sleep_dur_set (&_register_io_function, 0x02 );
153
- lsm6dsox_act_mode_set (&_register_io_function, LSM6DSOX_XL_AND_GY_NOT_AFFECTED);
155
+ lsm6dsox_act_sleep_dur_set (&_register_io_function, 0 ); // 1 LSB = 512*ODR / Max: 15
156
+ lsm6dsox_act_mode_set (&_register_io_function, LSM6DSOX_XL_12Hz5_GY_PD); // 4 Modes
154
157
155
158
lsm6dsox_pin_int1_route_t lsm6dsox_int1 {
156
159
.sleep_change = PROPERTY_ENABLE,
0 commit comments