智能车制作

标题: 加速度计程序 [打印本页]

作者: □借ωο①生    时间: 2012-5-31 08:29
标题: 加速度计程序
求助各路神人!!!帮忙看看加速度计的初始化和读取子程序哪里有问题,不胜感激!!!
我用的是K60的I2C模块...
/*************************************************************/
/*                    初始化加速度传感器MMA845x               */
/*************************************************************/
void hw_init_MMA845x(void)
{
uint8 WriteData[6]; //存放设置寄存器的值,设置量程2g,设置测量模式
uint8 ReadData[6]; //存放读取的Z轴加速度值
i2c0_Start();
hw_iic_writen(I2C0,0xA4, 0x1c, WriteData, 6);    //发送从机地址,写入操作
    hw_wait(65,0);  //‘A’的ASCII码65  表示等待应答        
delay();
    //hw_iic_readn(I2C0,0xA5, 0x98, ReadData, 6);
    hw_iic_writen(I2C0,0xA4, 0x00, WriteData, 6);  //写入寄存器地址
    hw_wait(65,0);      
    delay();
    //hw_iic_readn(I2C0,0xA5, 0x98, ReadData, 6);
    hw_iic_writen(I2C0,0xA4, 0x17, WriteData, 6);   //设置寄存器的值,设置量程2g,设置测量模式
    hw_wait(65,0);
    delay();
    //hw_iic_readn(I2C0,0xA5, 0x98, ReadData, 6);
    i2c0_Stop();
}
/*************************************************************/
/**********************读取3轴加速度***************************/
/*************************************************************/
void read3axle(void)
{
uint8 ReadData[6]; //存放读取的Z轴加速度值
uint8 WriteData[6];  //存放设置寄存器的值,设置量程2g,设置测量模式
i2c0_Start();               
   hw_iic_writen(I2C0,0xA4, 0x1c, WriteData, 6);//发送从机地址,写入操作
      hw_wait(65,0);            
   //hw_iic_readn(I2C0,0xA5, 0x1c, ReadData, 6);
      hw_iic_writen(I2C0,0xA4, 0x00, WriteData, 6); //写入待读取的第一个寄存器地址
      hw_wait(65,0);
      //hw_iic_readn(I2C0,0xA5, 0x98, ReadData, 6);
      i2c0_Start();            
      hw_iic_writen(I2C0,0xA4, 0x1c, WriteData, 6);   //发送从机地址,读取操作
      hw_wait(65,0);
      //hw_iic_readn(I2C0,0xA5, 0x1d, ReadData, 6);
      //X_value =  hw_iic_read1(I2C0,0xA5, 0x05, ReadData);      //读取X轴加速度      
      //hw_wait(84,0);   //'T'的ASCII码84  表示等待一个字节数据传输完成
      //Y_value =hw_iic_read1(I2C0,0xA5, 0x03, ReadData);  //读取Y轴加速度      
      //hw_wait(84,0);
      Z_value = hw_iic_read1(I2C0,0xA5, 0x00, ReadData);  //读取Z轴加速度
      i2c0_Stop();
      
      //将采集到的数据转换到-32~31之间
      //X_value= X_value<<2;
      //X_value_final = X_value /4;
      //Y_value= Y_value<<2;
      //Y_value_final = Y_value /4;
      Z_value= Z_value<<2;
      Z_value_final = Z_value /4;
}

作者: wangyao19920204    时间: 2012-12-29 17:50
楼主  你K60调MMA8451调试出来了吗?能不能指导我一下?我调了好几天没有调试出来,求帮忙~~~
作者: □借ωο①生    时间: 2013-1-8 23:17
wangyao19920204 发表于 2012-12-29 17:50
楼主  你K60调MMA8451调试出来了吗?能不能指导我一下?我调了好几天没有调试出来,求帮忙~~~

后来我也没时间调了  就买了个加速度计与陀螺仪二合一的片子  那个片子的加速度信号直接是数字信号输出  你可以试试用它  你是参加第八届的吧  加油啊
作者: wangyao19920204    时间: 2013-1-9 09:31
□借ωο①生 发表于 2013-1-8 23:17
后来我也没时间调了  就买了个加速度计与陀螺仪二合一的片子  那个片子的加速度信号直接是数字信号输出   ...

楼主  你买的那个二合一的板子是不是在淘宝助赢买的,带硬件滤波的,还是买的龙邱的简化的角度和角速度处理电路模块啊?我是参加第八届的,到现在还没有站起来,亚历山大啊。。。

作者: □借ωο①生    时间: 2013-3-30 16:30
wangyao19920204 发表于 2013-1-9 09:31
楼主  你买的那个二合一的板子是不是在淘宝助赢买的,带硬件滤波的,还是买的龙邱的简化的角度和角速度处 ...

淘宝上就有啊...硬件滤波的。

作者: hpbfsj    时间: 2013-3-31 16:28
wangyao19920204 发表于 2013-1-9 09:31
楼主  你买的那个二合一的板子是不是在淘宝助赢买的,带硬件滤波的,还是买的龙邱的简化的角度和角速度处 ...

同学你那个搞好没  !!  我们是龙丘的8451       怎么用i2c去读取加速度计的值啊??求教!
作者: wangyao19920204    时间: 2013-3-31 21:52
hpbfsj 发表于 2013-3-31 16:28
同学你那个搞好没  !!  我们是龙丘的8451       怎么用i2c去读取加速度计的值啊??求教!

我没有用那个加速度传感器了,我用K60调那个I2C不好用,用IO模拟I@C也不好用,所以我现在用的是官方方案里直接出角度和加速度的模块,还是可以用的,现在可以很好的站起来

作者: hpbfsj    时间: 2013-3-31 22:27
wangyao19920204 发表于 2013-3-31 21:52
我没有用那个加速度传感器了,我用K60调那个I2C不好用,用IO模拟I@C也不好用,所以我现在用的是官方方案里 ...

那你们的加速度计是模拟的吧
作者: wangyao19920204    时间: 2013-3-31 22:49
hpbfsj 发表于 2013-3-31 22:27
那你们的加速度计是模拟的吧

恩 是的 但是用12位AD采样出来的结果也是比较准确的

作者: joicejoy    时间: 2013-6-24 17:19
MMA8451求指导啊,数据出不来啊
作者: 梓离    时间: 2013-6-28 18:54
额,同求。。。。。。。。




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