Hi, I'm using a BMI160 shuttle board with SPI and I get conflicts configuring two interrupts, I placed double tap to INT1 and High-G to INT2. The problem is that the last interrupt to set up seems to break the previous one configuration, see attached code. int8_t rslt = BMI160_E_COM_FAIL; struct bmi160_int_settg int_config; // High-G // Interrupt channel and type int_config.int_channel = BMI160_INT_CHANNEL_1; int_config.int_type = BMI160_ACC_HIGH_G_INT; // Interrupt channel/pin settings int_config.int_pin_settg.output_en = BMI160_ENABLE; // Output Pin int_config.int_pin_settg.output_mode = BMI160_DISABLE; // Push-pull mode int_config.int_pin_settg.output_type = BMI160_ENABLE; // Active High int_config.int_pin_settg.edge_ctrl = BMI160_ENABLE; // Edge triggered output int_config.int_pin_settg.input_en = BMI160_DISABLE; // Disable Pin as input int_config.int_pin_settg.latch_dur = BMI160_LATCH_DUR_NONE; // High-G interrupt parameters int_config.int_type_cfg.acc_high_g_int.high_g_x = BMI160_ENABLE; int_config.int_type_cfg.acc_high_g_int.high_g_y = BMI160_ENABLE; int_config.int_type_cfg.acc_high_g_int.high_g_z = BMI160_ENABLE; int_config.int_type_cfg.acc_high_g_int.high_data_src=BMI160_DISABLE; int_config.int_type_cfg.acc_high_g_int.high_thres = 5; // 1 g @ (value * 15.63mg for 4 g range) int_config.int_type_cfg.acc_high_g_int.high_dur = 2; // 20 ms [(value + 1) * 2.5ms] // Set high-G interrupt rslt = bmi160_set_int_config(&int_config, &sensor); // Double Tap interrupt // Interrupt channel and type int_config.int_channel = BMI160_INT_CHANNEL_2; int_config.int_type = BMI160_ACC_DOUBLE_TAP_INT; // Interrupt channel/pin settings int_config.int_pin_settg.output_en = BMI160_ENABLE; // Output Pin int_config.int_pin_settg.output_mode = BMI160_DISABLE; // Push-pull mode int_config.int_pin_settg.output_type = BMI160_ENABLE; // Active High int_config.int_pin_settg.edge_ctrl = BMI160_ENABLE; // Edge triggered output int_config.int_pin_settg.input_en = BMI160_DISABLE; // Disable Pin as input int_config.int_pin_settg.latch_dur = BMI160_LATCH_DUR_NONE; // Double Tap interrupt parameters int_config.int_type_cfg.acc_tap_int.tap_en = BMI160_ENABLE; int_config.int_type_cfg.acc_tap_int.tap_data_src=BMI160_ENABLE; int_config.int_type_cfg.acc_tap_int.tap_dur = 3; int_config.int_type_cfg.acc_tap_int.tap_quiet = BMI160_ENABLE; int_config.int_type_cfg.acc_tap_int.tap_shock = BMI160_ENABLE; int_config.int_type_cfg.acc_tap_int.tap_thr = 3; // Set double tap interrupt rslt = bmi160_set_int_config(&int_config, &sensor);
... View more