OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3829|回复: 6

MPU6050的失重中断怎样调?数据手册没那两个寄存器啊

[复制链接]

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-10-15
在线时间
1 小时
发表于 2016-1-1 23:23:33 | 显示全部楼层 |阅读模式
10金钱
RT

最佳答案

查看完整内容[请看2#楼]

试试这个 // FF_THR寄存器 /* * 获取自由落体的加速度阈值。 * 这个寄存器为自由落体的阈值检测进行配置。FF_THR的单位是1LSB = 2mg。当加速度传感器测量而得的三个轴的绝对值都小于检测阈值时,就可以测得自由落体值。这种情况下,自由落体时间计数器计数一次 (寄存器30)。当自由落体时间计数器达到FF_DUR中规定的时间时,自由落体被中断。 * * 更多自由落体中断检测的相关信息,详见8.2节的MPU-6000/MPU-6050 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

774

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1473
金钱
1473
注册时间
2013-4-12
在线时间
77 小时
发表于 2016-1-1 23:23:34 | 显示全部楼层
试试这个



// FF_THR寄存器

/*
* 获取自由落体的加速度阈值。
* 这个寄存器为自由落体的阈值检测进行配置。FF_THR的单位是1LSB = 2mg。当加速度传感器测量而得的三个轴的绝对值都小于检测阈值时,就可以测得自由落体值。这种情况下,自由落体时间计数器计数一次 (寄存器30)。当自由落体时间计数器达到FF_DUR中规定的时间时,自由落体被中断。
*
* 更多自由落体中断检测的相关信息,详见8.2节的MPU-6000/MPU-6050产品规格文件和该文件下的寄存器56和寄存器58.
*
* @返回当前自由落体加速度阈值(LSB = 2mg)
* @请参见MPU6050_RA_FF_THR字段
*/
uint8_t MPU6050::getFreefallDetectionThreshold() {
    I2Cdev::readByte(devAddr, MPU6050_RA_FF_THR, buffer);
    return buffer[0];
}
/*
* 获取自由落体加速度阈值
* @新自由落体加速度阈值参数(LSB = 2mg)
* @请参见getFreefallDetectionThreshold()字段
* @请参见MPU6050_RA_FF_THR字段
*/
void MPU6050::setFreefallDetectionThreshold(uint8_t threshold) {
    I2Cdev::writeByte(devAddr, MPU6050_RA_FF_THR, threshold);
}

// FF_DUR寄存器

/*
* 获取自由落体时间阈值
* 这个寄存器为自由落体时间阈值计数器进行配置。时间计数频率为1 khz,因此FF_DUR的单位是 1 LSB = 1毫秒。
*
* 当加速度器测量而得的绝对值都小于检测阈值时,自由落体时间计数器计数一次。当自由落体时间计数器达到该寄存器的规定时间时,自由落体被中断。
*
* 更多自由落体中断检测的相关信息,详见8.2节的MPU-6000/MPU-6050产品规格文件和该文件下的寄存器56和寄存器58文件.
*
* 返回当前自由落体加速度阈值(LSB = 1ms)
* 请参见MPU6050_RA_FF_DUR字段
*/
uint8_t MPU6050::getFreefallDetectionDuration() {
    I2Cdev::readByte(devAddr, MPU6050_RA_FF_DUR, buffer);
    return buffer[0];
}
/*
* 获取自由落体时间阈值
* 自由落体时间阈值参数(LSB = 1ms)
* 请参见getFreefallDetectionDuration()字段
* 请参见MPU6050_RA_FF_DUR字段
*/
void MPU6050::setFreefallDetectionDuration(uint8_t duration) {
    I2Cdev::writeByte(devAddr, MPU6050_RA_FF_DUR, duration);
}
/**设定自由落体加速度阈值..
* @新运动检测加速度阈值参数(LSB = 2mg)
* @请参见getMotionDetectionThreshold()字段
* @请参见MPU6050_RA_MOT_THR字段
*/
void MPU6050::setMotionDetectionThreshold(uint8_t threshold) {
    I2Cdev::writeByte(devAddr, MPU6050_RA_MOT_THR, threshold);
}
简单是多么的快乐,而快乐就因你而简单!微芯动力LTKKS
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-1-2 10:53:48 | 显示全部楼层
帮顶
回复

使用道具 举报

13

主题

225

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2013-11-12
在线时间
29 小时
发表于 2016-1-4 09:12:57 | 显示全部楼层
估计是数据手册不好呗,既然有这个,数据手册肯定会有介绍的赛
回复

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-10-15
在线时间
1 小时
 楼主| 发表于 2016-1-5 11:00:29 | 显示全部楼层

能分享一下你的数据手册吗?  FF_THR和FF_DUR的寄存器是多少?
回复

使用道具 举报

27

主题

774

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1473
金钱
1473
注册时间
2013-4-12
在线时间
77 小时
发表于 2016-1-5 20:13:05 | 显示全部楼层
bandelin 发表于 2016-1-5 11:00
能分享一下你的数据手册吗?  FF_THR和FF_DUR的寄存器是多少?

我的数据手册也没有这几个寄存器
#define MPU6050_RA_FF_THR           0x1D
#define MPU6050_RA_FF_DUR           0x1E
简单是多么的快乐,而快乐就因你而简单!微芯动力LTKKS
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-1-31
在线时间
2 小时
发表于 2016-2-12 17:46:27 | 显示全部楼层
楼主配置成功了吗?我配置自由落体中断也遇到问题了。都按他手册上的配置了,还是进不了中断。楼主能分享一下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 05:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表