智能车制作

标题: mpu6050数据输出为何是这样 [打印本页]

作者: admingj    时间: 2014-7-27 10:45
标题: mpu6050数据输出为何是这样
手上有个gy-86 带MPU6050的小模块,网上当的模拟I2C xs256 终于出数了,但是采出的加速度计跟我想的差距好的啊,比如原先飞思卡尔的模拟加速度计 只看单轴 慢慢旋转,轴上的加速度在[-1g,1g]区间上,0g时对应Azero 所以sina=(AD-Azero)/(AD1g-AD-1g)   AD值怎么看都是连续的,可是6050传回的其中一个轴的数是突变的在两个区间上一个是0~16300 一个是 65535~48000 好别扭 你们是怎么处理的?
作者: admingj    时间: 2014-7-27 11:12
找到问题了,MPU6050 输出的是带符号的,
//**************************************
//合成数据
//**************************************
int GetData(uchar REG_Address)
{
        uchar H,L;
        H=Single_ReadI2C(REG_Address);
        L=Single_ReadI2C(REG_Address+1);
        return (H<<8)+L;   //合成数据
}
顺便问一下 H L都是无符号返回值为啥能带符号,太神奇了

作者: wuzhishiji    时间: 2014-7-28 23:36
标题: RE: mpu6050数据输出为何是这样
admingj 发表于 2014-7-27 11:12
找到问题了,MPU6050 输出的是带符号的,
//**************************************
//合成数据

函数定义的是有符号整形,返回的肯定是有正负啦




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2