欢迎来到天天文库
浏览记录
ID:40713017
大小:123.50 KB
页数:12页
时间:2019-08-06
《MPU6050九轴示例程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/*采用模拟IIC,移植性强;MPU60509轴示例程序,MPU6050作为主机操作第三方传感器,已测试,若有错误或意见欢迎指出。*ADXL345.c基于AVRstudio6.0编写,改为其他空芯片时注意寄存器的改变*CS-VDDSDO-GND*模拟IIC读取数据,mega8主控,外部晶振7.3728M**MPU60506轴+辅助IIC扩展使用(组成9轴系统)*程序主要演示了MPU6050辅助IIC接口驱动第三方IIC传感器芯片,Pass-ThroughMode较简单(其实就是把第三方芯片直接接到当前总线上)*I2CMasterMode看似有点多余不过可以节省
2、控制器CPU占用资源,可以让MPU6050自己作为主机读取并产生中断以告诉控制器来读取数据*本程序主要以ADXL345作为mpu6050的从机0并读取数据(最多可接5个从机)*Created:2013-10-25周五23:56:29*Author:ly*/#include#include"IIC.h"#include#defineCLK7372800//****************************************//定义MPU6050内部地址//*********************
3、*******************#defineSMPLRT_DIV0x19//陀螺仪采样率,典型值:0x07(125Hz)#defineCONFIG0x1A//低通滤波频率,典型值:0x06(5Hz)#defineGYRO_CONFIG0x1B//陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)#defineACCEL_CONFIG0x1C//加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)#defineACCEL_XOUT_H0x3B#defineACCEL_XOUT_L0x3C#defineACCEL_
4、YOUT_H0x3D#defineACCEL_YOUT_L0x3E#defineACCEL_ZOUT_H0x3F#defineACCEL_ZOUT_L0x40#defineTEMP_OUT_H0x41#defineTEMP_OUT_L0x42#defineGYRO_XOUT_H0x43#defineGYRO_XOUT_L0x44#defineGYRO_YOUT_H0x45#defineGYRO_YOUT_L0x46#defineGYRO_ZOUT_H0x47#defineGYRO_ZOUT_L0x48#definePWR_MGMT_10x6B//电源管理,典型
5、值:0x00(正常启用)#defineWHO_AM_I0x75//IIC地址寄存器(默认数值0x68,只读)#defineSlaveAddress0xD0//IIC写入时的地址字节数据,+1为读取#defineL_onPORTD
6、=0x80#defineL_offPORTD&=0x7F#defineKey(PIND&0x10)unsignedcharvalue;voidinit_uart(unsignedintbaud){UCSRB=0x00;UCSRA=0x00;//控制寄存器清零UCSRC=(1<7、(0<8、(3<9、/选择UCSRC,异步模式,禁止校验,1位停止位,8位数据位UBRRL=(CLK/16/baud-1)%256;UBRRH=(CLK/16/baud-1)/256;//设置波特率UCSRB=(1<10、(1<11、(1<12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
7、(0<8、(3<9、/选择UCSRC,异步模式,禁止校验,1位停止位,8位数据位UBRRL=(CLK/16/baud-1)%256;UBRRH=(CLK/16/baud-1)/256;//设置波特率UCSRB=(1<10、(1<11、(1<12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
8、(3<9、/选择UCSRC,异步模式,禁止校验,1位停止位,8位数据位UBRRL=(CLK/16/baud-1)%256;UBRRH=(CLK/16/baud-1)/256;//设置波特率UCSRB=(1<10、(1<11、(1<12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
9、/选择UCSRC,异步模式,禁止校验,1位停止位,8位数据位UBRRL=(CLK/16/baud-1)%256;UBRRH=(CLK/16/baud-1)/256;//设置波特率UCSRB=(1<10、(1<11、(1<12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
10、(1<11、(1<12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
11、(1<12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
12、=0X02;//配置TX为输出(很重要)}voidsend_date(unsignedchardate){while(!(UCSRA&(1<13、;//等待发送结束UCSRA14、=(1<15、据测试传感器的状态写入pdf29页Wr
13、;//等待发送结束UCSRA
14、=(1<15、据测试传感器的状态写入pdf29页Wr
15、据测试传感器的状态写入pdf29页Wr
此文档下载收益归作者所有