自由落体检测

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
磁流体动力芒泽
离线
最后看到:3年10个月前
加入:2017-05-02 17:04
自由落体检测

大家好!
我试图实现一个自由落体探测器使用物联网传感器,我希望任何运动检测被自由落体检测中断取代。
我试了又试,但它一直不工作,这是我的代码:
在sensor.c中:

Void user_bmi160_config_low-g_intr(Void) {

bmi160_set_low_g_enable (BMI160_ENABLE);

bmi160_set_low_high_g_source (0 x01);

/* BMI160 Datasheet pg 63, int1 is hi level active with output - push - pull */
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 (0 x01);
bmi160_set_reg_int_map_1 (0 x00);
bmi160_set_reg_int_map_2 (0 x00);

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


在user_platform.c中:我改变它来检查低g中断:

#定义BMI160_INT_STATUS1_LOWG_INT_FLAG (
wkup_intr_non_connected_cb(Void)

uint8_t bmi160_int_status = 0;
如果(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_reg_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
如果(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);

其他#
如果(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);

# endif

任何帮助都非常感激
谢谢。

设备:
MT_dialog
离线
最后看到:三个月两个星期前
工作人员
加入:2015-06-08 34
嗨mnd芒泽,

嗨mnd芒泽,

当你提到它不工作,你看到中断触发和设备没有醒来?会发生自由落体中断吗?

由于MT_dialog

磁流体动力芒泽
离线
最后看到:3年10个月前
加入:2017-05-02 17:04
好吧,实际上这是应该的

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

MT_dialog
离线
最后看到:三个月两个星期前
工作人员
加入:2015-06-08 34
嗨磁流体动力芒泽,

嗨磁流体动力芒泽,

你必须调试这个,检查中断是否发生,以便确定。如果中断触发,设备没有醒来,它可能是中断的极性,或者中断被触发,你永远不会到达开始发布功能,在触发中断和开始发布之间有相当多的事情可以出错。

由于MT_dialog