#include <iom16v.h>
#include <macros.h>
#include <math.h>
#include "typedefine.h"
#include "delay.h"
#include "usart.h"
#include "LCD12864.h"
#include "LCD1602.h"
#include "mpu6050.h"
#include "mpu6050_iic.h"
//==============================================
int accel_x,accel_y,accel_z;
int gyro_x,gyro_y,gyro_z;
uint8 accel_x_data[5];//x轴加速度
uint8 accel_y_data[5];//y轴加速度
uint8 accel_z_data[5];//z轴加速度
uint8 angle_x_data[5];//x轴角度
uint8 angle_y_data[5];//y轴角度
uint8 angle_z_data[5];//z轴角度
uint8 mpudata[5];
//===============================================
void data_conversion(int data)
{
mpudata[0] = data/10000%10 + '0';
mpudata[1] = data/1000%10 + '0';
mpudata[2] = data/100%10 + '0';
mpudata[3] = data/10%10 + '0';
mpudata[4] = data/1%10 + '0';
}
//*****以下用l602液晶显示*********//
//======显示x轴加速度======
void display_accel_x(void)
{
int accel_x;
accel_x = GetData(ACCEL_XOUT_H);//x轴加速度十六位数据
if(accel_x < 0)
{
accel_x = -accel_x;
LCM_put_char(2,0,'-');
}
else
{
LCM_put_char(2,0,' ');
}
data_conversion(accel_x);
LCM_put_char(0,0,'x'); //第0行,第0列 显示X
LCM_put_char(1,0,':');
LCM_put_char(3,0,mpudata[0]);
LCM_put_char(4,0,mpudata[1]);
LCM_put_char(5,0,mpudata[2]);
LCM_put_char(6,0,mpudata[3]);
LCM_put_char(7,0,mpudata[4]);
}
//======显示y轴加速度======
void display_accel_y(void)
{
int accel_y;
accel_y = GetData(ACCEL_YOUT_H);//x轴加速度十六位数据
if(accel_y < 0)
{
accel_y = -accel_y;
LCM_put_char(2,1,'-');
}
else
{
LCM_put_char(2,1,' ');
}
data_conversion(accel_y);
LCM_put_char(0,1,'y'); //第0行,第0列 显示X
LCM_put_char(1,1,':');
LCM_put_char(3,1,mpudata[0]);
LCM_put_char(4,1,mpudata[1]);
LCM_put_char(5,1,mpudata[2]);
LCM_put_char(6,1,mpudata[3]);
LCM_put_char(7,1,mpudata[4]);
}
//======显示z轴加速度======
void display_accel_z(void)
{
int accel_z;
accel_z = GetData(ACCEL_ZOUT_H);//x轴加速度十六位数据
if(accel_z < 0)
{
accel_z = -accel_z;
LCM_put_char(9,1,'-');
}
else
{
LCM_put_char(9,1,' ');
}
data_conversion(accel_z);
LCM_put_char(9,0,'z'); //第0行,第0列 显示X
LCM_put_char(10,0,':');
LCM_put_char(10,1,mpudata[0]);
LCM_put_char(11,1,mpudata[1]);
LCM_put_char(12,1,mpudata[2]);
LCM_put_char(13,1,mpudata[3]);
LCM_put_char(14,1,mpudata[4]);
}
//*****以下用串口调试助手显示**********//
//=======显示x轴角速度=======
void display_angle_x(void)
{
gyro_x = GetData(GYRO_XOUT_H);//x轴加速度十六位数据
if(gyro_x < 0)
{
gyro_x = -gyro_x;
data_conversion(gyro_x);
putchar('-');
putchar(mpudata[0]);
putchar(mpudata[1]);
putchar(mpudata[2]);
putchar(mpudata[3]);
putchar(mpudata[4]);
}
else
{
data_conversion(gyro_x);
putchar(mpudata[0]);
putchar(mpudata[1]);
putchar(mpudata[2]);
putchar(mpudata[3]);
putchar(mpudata[4]);
}
}
//=======显示y轴角速度=======
void display_angle_y(void)
{
gyro_y = GetData(GYRO_YOUT_H);//x轴加速度十六位数据
if(gyro_y < 0)
{
gyro_y = -gyro_y;
data_conversion(gyro_y);
putchar('-');
putchar(mpudata[0]);
putchar(mpudata[1]);
putchar(mpudata[2]);
putchar(mpudata[3]);
putchar(mpudata[4]);
}
else
{
data_conversion(gyro_y);
putchar(mpudata[0]);
putchar(mpudata[1]);
putchar(mpudata[2]);
putchar(mpudata[3]);
putchar(mpudata[4]);
}
}
//=======显示z轴角速度=======
void display_angle_z(void)
{
gyro_z = GetData(GYRO_ZOUT_H);//x轴加速度十六位数据
if(gyro_z < 0)
{
gyro_z = -gyro_z;
data_conversion(gyro_z);
putchar('-');
putchar(mpudata[0]);
putchar(mpudata[1]);
putchar(mpudata[2]);
putchar(mpudata[3]);
putchar(mpudata[4]);
}
else
{
data_conversion(gyro_z);
putchar(mpudata[0]);
putchar(mpudata[1]);
putchar(mpudata[2]);
putchar(mpudata[3]);
putchar(mpudata[4]);
}
}
请问如何解决这个问题,我是大一的。刚学,不太懂如何融合,哪位前辈大神能帮我解答一下?