MMA7660FC如何与单片机连接啊 那个INT接什么

MMA7660FC如何与单片机连接啊 那个INT接什么,第1张

<p>好吧,没人来回答,我就简单说一下吧,希望你还看到回复。MMA7660接法挺简单的,主要就INT,SDA,SCL三个脚还单片机连接,SDA,SCL接上拉电阻,最好与单片机的SDA,SCL相连,这样程序会简单点,当然也可以不用,自己程序仿I2C总线传输就可以了,INT脚主要是用来判断IC是否数据传输完成,或有变化时产生中断。</p>

<p></p>

1. 修改Makefie

首先,修改放置驱动的目录里的Makefile(kernel/driver/misc),添置如下语句:

obj-$(CONFIG_SENSORS_MMA7660) += mma7660.o

2. 增加驱动文件

把驱动文件mma7660.c添加到kernel/driver/misc下。

3. 修改.config文件,把下面两行注释掉

# CONFIG_BOSCH_SENSOR=y

# CONFIG_BOSCH_BMA222=y

再增加下面这项

CONFIG_SENSORS_MMA7660=y

由于重力感应器在板上安装的方向不同,而移植时需要调整相关的代码.

解决屏幕显示颠倒相关问题,相关的有两部分代码:

1.内核重力感应器驱动部分,如 MMA7660

1vi drivers/input/gsensor/mma7660.c

在这个文件中寻找相似以下的代码

1axis.y = mma7660_convert_to_int(buffer[MMA7660_REG_X_OUT])

2axis.x = mma7660_convert_to_int(buffer[MMA7660_REG_Y_OUT])

3axis.z = mma7660_convert_to_int(buffer[MMA7660_REG_Z_OUT])

然后按照你自己板的需要,将 X,Y 进行交换,进行相反数运算,将 Z 进行相反运算.

其实可以做得更方便一些,把这几个 *** 作写到 Kconfig 里面,通过宏来控制这些运算,就不用再改代码了.

01#ifdef CONFIG_SWAP_XY02{

03 typeof(x) __tmp

04 __tmp = x05 x = y

06 y = __tmp07}08#endif09

10#ifdef CONFIG_REVERSE_X11 x = -x12#endif13

14#ifdef CONFIG_REVERSE_Y15 y = -y16#endif

17/* X Y 感应方向有问题,这很容易看出来.*/

18#ifdef CONFIG_REVERSE_Z

19 z = -z/* 按正常情况下拿着设备,屏幕斜向上,如果不灵敏,把屏幕朝下试试,如果灵敏了,一般是 Z 反了.*/20#endif

2.Android部分,如果出现菜单显示正常,但是玩重力感应游戏时有问题,这部分就要修改(2.1)

1vim frameworks/base/core/java/android/view/WindowOrientationListener.java

1public void onSensorChanged(SensorEvent event) {

2 float[] values = event.values


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7796382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存