自由落体检测

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
MHD Munzer.
离线
最后一次露面:3年10个月前
加入:2017-05-02 17:04
自由落体检测

大家好!
我试图使用物联网传感器实现自由落体探测器,我希望任何运动检测都被自由落体检测中断所取代。
我试过并尝试但它不起作用,这里是我的代码:
在用户传感器中:

void user_bmi160_config_low-g_intr(void){

bmi160_set_low_g_enable(bmi160_enable);

bmi160_set_low_high_g_source(0x01);

/ * BMI160 Datasheet PG 63,INT1是HI电平有源输出 - 推拉* /
bmi160_set_intr_1_output_enable(bmi160_enable);
BMI160_SET_INTR_1_OUTPUT_LEVEL(BMI160_LEVEL_HIGH);
bmi160_set_intr_1_output_odrn_pshpll(bmi160_open_drain);
bmi160_set_intr_1_output_edge_Level(BMI160_EDGE);

bmi160_set_intrs_latched(bmi160_latch_dur_2_5_milli_sec);

bmi160_set_low_g_intr_1(bmi160_enable);
bmi160_set_reg_int_map_0(0x01);
bmi160_set_reg_int_map_1(0x00);
bmi160_set_reg_int_map_2(0x00);

bmi160_set_low_g_threshold(0xff);
bmi160_set_low_g_mode(0x00);

}
在user_platform.c:我将它更改为检查低g中断:

#define bmi160_int_status1_lowg_int_flag 0x08
void wkup_intr_non_connected_cb(void)
{
uint8_t bmi160_int_status = 0;
if(getBits16(sys_stat_reg,per_is_down)){
periph_init();
}
ARCH_BLE_EXT_WAKEUP_OFF();

// bmi160_get_reg_int_status_2(&bmi160_int_status);
bmi160_get_teg_int_status_1(&bmi160_int_status);
// bmi160_get_reg_int_status_0(&bmi160_int_status);

dbg_msg1(“醒来的sf%x \ r \ n”,(int)bmi160_int_status);

#ifdef use_low_g_wakeup.
if(bmi160_int_status&bmi160_int_status1_lowg_int_flag){
wrbl_env.adv_mode = adv_mode_fast;
bmi160_soft_reset();
Execute_default_operation_void(default_operation_adv);
}
#别的
if(bmi160_int_status&0x08){
wrbl_env.adv_mode = adv_mode_fast;
bmi160_set_sensor_state(acc_suspend);
bmi160_set_sensor_state(gyr_suspend);
Execute_default_operation_void(default_operation_adv);
}
#万一
}
任何帮助都受到高度赞赏
谢谢。

设备:
mt_dialog.
离线
最后一次露面:3个月4周前
职员
加入:2015-06-08 11:34
嗨Mnd Munzer,

嗨Mnd Munzer,

当你提到它不起作用时,你会看到中断触发,设备不会醒来?自由落体中断发生吗?

谢谢mt_dialog.

MHD Munzer.
离线
最后一次露面:3年10个月前
加入:2017-05-02 17:04
好吧,实际上它是假设的

好吧,实际上它应该开始广告,如果发生自由落体,所以我假设中断没有发生
谢谢。

mt_dialog.
离线
最后一次露面:3个月4周前
职员
加入:2015-06-08 11:34
嗨MHD Munzer,

嗨MHD Munzer,

好吧,你必须调试它并检查中断是否发生或不进行检查,以确保。如果中断触发器和设备无法唤醒,可能是中断的极性或者中断被触发,而且您从未达到启动通告功能,则触发中断之间有相当多的事情可能会出错开始广告。

谢谢mt_dialog.