智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1957|回复: 12
打印 上一主题 下一主题

请问L3G4200D陀螺仪的中断线有什么用?

[复制链接]

17

主题

92

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3679
威望
1719
贡献
1124
兑换币
1117
注册时间
2015-10-8
在线时间
418 小时
跳转到指定楼层
1#
发表于 2015-12-6 22:18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 srqqq 于 2015-12-6 22:19 编辑

我们队选用的是L3G4200D这款数字陀螺仪,用I2C接口就能通信,但是不清楚那两个中断线有什么用。在Datasheet上看到了相关的标示,但是还是不清楚具体是干什么的....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

7

主题

79

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4450
威望
2014
贡献
1338
兑换币
1313
注册时间
2014-8-28
在线时间
549 小时
毕业学校
安徽
2#
发表于 2015-12-7 10:20:35 | 只看该作者
可以通过对芯片寄存器的配置,实现数据更新后产生中断信号,告诉单片机可以来读数据了。一般用不到这个功能。
回复 支持 反对

使用道具 举报

17

主题

92

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3679
威望
1719
贡献
1124
兑换币
1117
注册时间
2015-10-8
在线时间
418 小时
3#
 楼主| 发表于 2015-12-7 18:06:18 | 只看该作者
CRZH 发表于 2015-12-7 10:20
可以通过对芯片寄存器的配置,实现数据更新后产生中断信号,告诉单片机可以来读数据了。一般用不到这个功能 ...

明白了,谢谢
回复 支持 反对

使用道具 举报

2

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
威望
1081
贡献
527
兑换币
533
注册时间
2015-7-15
在线时间
159 小时
4#
发表于 2015-12-7 18:21:55 | 只看该作者
:):):)666666666666666666
回复 支持 反对

使用道具 举报

2

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
威望
1081
贡献
527
兑换币
533
注册时间
2015-7-15
在线时间
159 小时
5#
发表于 2015-12-7 18:28:30 | 只看该作者
666666666666666666666
回复 支持 反对

使用道具 举报

17

主题

92

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3679
威望
1719
贡献
1124
兑换币
1117
注册时间
2015-10-8
在线时间
418 小时
6#
 楼主| 发表于 2015-12-19 20:26:03 | 只看该作者
本帖最后由 srqqq 于 2015-12-19 20:35 编辑
CRZH 发表于 2015-12-7 10:20
可以通过对芯片寄存器的配置,实现数据更新后产生中断信号,告诉单片机可以来读数据了。一般用不到这个功能 ...

额,麻烦再问一下,现在程序要求在5ms中断内连续读取陀螺仪加速度计20次值取均值,那相邻两次读取怎么判断陀螺仪的值已经准备好?比如:
uint8 a=20;
while(a--)
{
   MMA8451_GetResult() ;//读取加速度计的值
   //这里是否需要判断加速度计数据准备完成?
}
如果需要判断的话,需要使用陀螺仪和加速度计的中断线吗?

回复 支持 反对

使用道具 举报

7

主题

79

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4450
威望
2014
贡献
1338
兑换币
1313
注册时间
2014-8-28
在线时间
549 小时
毕业学校
安徽
7#
发表于 2015-12-20 10:35:29 | 只看该作者
srqqq 发表于 2015-12-19 20:26
额,麻烦再问一下,现在程序要求在5ms中断内连续读取陀螺仪加速度计20次值取均值,那相邻两次读取怎么判 ...

例程里面的读取函数是自带状态判断的,就是说你调用读取函数,函数自己会判断数据是否更新,更新了就读取,没有更新就会在那等待。你可以连续调用这个函数就可以了。不过注意函数运行时间,看看能不能在中断中完成。
回复 支持 反对

使用道具 举报

17

主题

92

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3679
威望
1719
贡献
1124
兑换币
1117
注册时间
2015-10-8
在线时间
418 小时
8#
 楼主| 发表于 2015-12-20 21:23:19 | 只看该作者
CRZH 发表于 2015-12-20 10:35
例程里面的读取函数是自带状态判断的,就是说你调用读取函数,函数自己会判断数据是否更新,更新了就读取 ...

  // 等待转换完成并取出值
  while(!(ret&Status))
  {
    ret = MMA8451_readbyte( MMA8451_REG_STATUS);
    if(++cnt>500)
      break;
  }
这个是读MAA8451加速度输出的函数,请问是在这一句判断吗?这里不太明白,把读出寄存器的值给ret,然后和寄存器的名字Status相与是什么作用?陀螺仪的例程里也有这样的语句(Status是寄存器地址的形参)

回复 支持 反对

使用道具 举报

7

主题

79

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4450
威望
2014
贡献
1338
兑换币
1313
注册时间
2014-8-28
在线时间
549 小时
毕业学校
安徽
9#
发表于 2015-12-21 16:09:31 | 只看该作者
srqqq 发表于 2015-12-20 21:23
// 等待转换完成并取出值
  while(!(ret&Status))
  {

检查状态寄存器的数据位而已,数据手册中有详细说明。
回复 支持 反对

使用道具 举报

17

主题

92

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3679
威望
1719
贡献
1124
兑换币
1117
注册时间
2015-10-8
在线时间
418 小时
10#
 楼主| 发表于 2015-12-30 00:46:10 | 只看该作者
CRZH 发表于 2015-12-21 16:09
检查状态寄存器的数据位而已,数据手册中有详细说明。

额,再麻烦一下,请问这三个参数有什么用?如何利用?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 17:10 , Processed in 0.156550 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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