智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4863|回复: 10
打印 上一主题 下一主题

[软件类] 加速度计程序

[复制链接]

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
跳转到指定楼层
1#
发表于 2012-5-31 08:29:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助各路神人!!!帮忙看看加速度计的初始化和读取子程序哪里有问题,不胜感激!!!
我用的是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;
}

31

主题

370

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6026

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

威望
3707
贡献
1593
兑换币
1043
注册时间
2012-12-27
在线时间
363 小时
毕业学校
三江学院
2#
发表于 2012-12-29 17:50:39 | 只看该作者
楼主  你K60调MMA8451调试出来了吗?能不能指导我一下?我调了好几天没有调试出来,求帮忙~~~
回复 支持 反对

使用道具 举报

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
3#
 楼主| 发表于 2013-1-8 23:17:04 | 只看该作者
wangyao19920204 发表于 2012-12-29 17:50
楼主  你K60调MMA8451调试出来了吗?能不能指导我一下?我调了好几天没有调试出来,求帮忙~~~

后来我也没时间调了  就买了个加速度计与陀螺仪二合一的片子  那个片子的加速度信号直接是数字信号输出  你可以试试用它  你是参加第八届的吧  加油啊
回复 支持 反对

使用道具 举报

31

主题

370

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6026

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

威望
3707
贡献
1593
兑换币
1043
注册时间
2012-12-27
在线时间
363 小时
毕业学校
三江学院
4#
发表于 2013-1-9 09:31:54 | 只看该作者
□借ωο①生 发表于 2013-1-8 23:17
后来我也没时间调了  就买了个加速度计与陀螺仪二合一的片子  那个片子的加速度信号直接是数字信号输出   ...

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

使用道具 举报

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
5#
 楼主| 发表于 2013-3-30 16:30:09 | 只看该作者
wangyao19920204 发表于 2013-1-9 09:31
楼主  你买的那个二合一的板子是不是在淘宝助赢买的,带硬件滤波的,还是买的龙邱的简化的角度和角速度处 ...

淘宝上就有啊...硬件滤波的。
回复 支持 反对

使用道具 举报

13

主题

265

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3090

优秀会员奖章活跃会员奖章

QQ
威望
1496
贡献
832
兑换币
898
注册时间
2012-10-11
在线时间
381 小时
6#
发表于 2013-3-31 16:28:36 | 只看该作者
wangyao19920204 发表于 2013-1-9 09:31
楼主  你买的那个二合一的板子是不是在淘宝助赢买的,带硬件滤波的,还是买的龙邱的简化的角度和角速度处 ...

同学你那个搞好没  !!  我们是龙丘的8451       怎么用i2c去读取加速度计的值啊??求教!
回复 支持 反对

使用道具 举报

31

主题

370

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6026

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

威望
3707
贡献
1593
兑换币
1043
注册时间
2012-12-27
在线时间
363 小时
毕业学校
三江学院
7#
发表于 2013-3-31 21:52:31 | 只看该作者
hpbfsj 发表于 2013-3-31 16:28
同学你那个搞好没  !!  我们是龙丘的8451       怎么用i2c去读取加速度计的值啊??求教!

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

使用道具 举报

13

主题

265

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3090

优秀会员奖章活跃会员奖章

QQ
威望
1496
贡献
832
兑换币
898
注册时间
2012-10-11
在线时间
381 小时
8#
发表于 2013-3-31 22:27:23 | 只看该作者
wangyao19920204 发表于 2013-3-31 21:52
我没有用那个加速度传感器了,我用K60调那个I2C不好用,用IO模拟I@C也不好用,所以我现在用的是官方方案里 ...

那你们的加速度计是模拟的吧
回复 支持 反对

使用道具 举报

31

主题

370

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6026

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

威望
3707
贡献
1593
兑换币
1043
注册时间
2012-12-27
在线时间
363 小时
毕业学校
三江学院
9#
发表于 2013-3-31 22:49:08 | 只看该作者
hpbfsj 发表于 2013-3-31 22:27
那你们的加速度计是模拟的吧

恩 是的 但是用12位AD采样出来的结果也是比较准确的
回复 支持 反对

使用道具 举报

14

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
470
QQ
威望
266
贡献
112
兑换币
155
注册时间
2012-12-12
在线时间
46 小时
10#
发表于 2013-6-24 17:19:12 | 只看该作者
MMA8451求指导啊,数据出不来啊
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 10:55 , Processed in 0.049142 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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