jayelva2003 发表于 2014-6-17 09:07:40

MPU9150运动中断配置的问题,请高手帮忙看一下!!!

前两天使用stm32f103移植了官方的DMP库,并已可以使用dmp_read_fifo函数读取到四元数;昨天想使用DMP库中的函数来配置运动中断,碰到以下问题:
1. 使用dmp_set_interrupt_mode(DMP_INT_GESTURE)配置中断以后,感觉板子每次要转动一个很大的角度才产生一次中断,拿着板子轻轻晃动不会产生中断;产生一次中断后可以读取到四元数。
2.使用mpu_lp_motion_interrupt函数配置中断后,产生中断的灵敏度比上一个函数效果好,但是一直无法读取到有效的四元数。
另外在附上相关的配置代码,请高手帮忙指点一下。
                     result = mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL);
                result = mpu_configure_fifo(INV_XYZ_GYRO | INV_XYZ_ACCEL);
                result = mpu_set_sample_rate(DEFAULT_MPU_HZ);
                result = mpu_get_sample_rate(&gyro_rate);
                result = mpu_get_gyro_fsr(&gyro_fsr);
                result = mpu_get_accel_fsr(&accel_fsr);
       
                result = dmp_load_motion_driver_firmware();
                result = dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));
                result = dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT | DMP_FEATURE_TAP |
                                                                        DMP_FEATURE_ANDROID_ORIENT | DMP_FEATURE_SEND_RAW_ACCEL | DMP_FEATURE_SEND_CAL_GYRO |
                                                                        DMP_FEATURE_GYRO_CAL);
                result = dmp_set_fifo_rate(DEFAULT_MPU_HZ);
               
               
                //自校准
                run_self_test();
                result = mpu_set_dmp_state(1);
                //这两个配置中断函数选其中之一使用
                result = dmp_set_interrupt_mode(DMP_INT_GESTURE);
                //result = mpu_lp_motion_interrupt(960,1,5);
页: [1]
查看完整版本: MPU9150运动中断配置的问题,请高手帮忙看一下!!!