• 大小: 23KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-12-26
  • 语言: C/C++
  • 标签:

资源简介

基于mpu9250的磁力计算法,纯c语言,可移植多个平台,属于独立校准源代码,里面有旭泰的demo模板,校准数据可以是三维或者刘伟数据,当然,维度越高校准的数据的准确率越高。

资源截图

代码片段和文件信息

/*************************************************************************
 *    > File Name:     main.c
 *    > Company:       ZhuHai ICAN Technology 
 *    > Author:        D.DUKE
 *    > Phone-Call:    +86 13249008893
 *    > Mail:          dcj_ican@163.com 
 *    > Created Date:  2017年11月07日 星期二 03时34分09秒
 *************************************************************************/

#include 
#include 
#include 
#include “matrix.h“  
#define row  48
#define col  6
//打印2维矩阵  
void printf_matrix(struct _Matrix *A)  
{  
    int i = 0;  
    int j = 0;  
    int m = 0;  
    int n = 0;  

    m = A->m;  
    n = A->n;  
    for (i = 0;i < m;i++)  
    {  
        for (j = 0;j < n;j++)  
        {  
            printf(“%f\t“matrix_read(Aij));  
        }  
        printf(“\n“);  
    }  


void printf_matrix_o(struct _Matrix *A)  
{  
    int i = 0;  
    int j = 0;  
    int m = 0;  
    int n = 0;  
    float a1 = 0.0fa2 = 0.0fa3 = 0.0fa4 = 0.0fa5 = 0.0fa6 = 0.0fc1c2c3c4c5c6;       
    m = A->m;  
    n = A->n;  
    for (i = 0;i < m;i++)  
    {  
        for (j = 0;j < n;j++)  
        {  
            printf(“%f\t“matrix_read(Aij));  
if(i==0)
{
a1=sqrt(matrix_read(Aij));
}
if(i==1)
{
a3=sqrt(matrix_read(Aij));
}
if(i==2)
{
a5=sqrt(matrix_read(Aij));
}
if(i==3)
{
a2=matrix_read(Aij)/(2*a1);
}
if(i==4)
{
a4=matrix_read(Aij)/(2*a3);
}
if(i==5)
{
a6=matrix_read(Aij)/(2*a5);
}
        }  
        printf(“\n“);  
    }

printf(“a1:%f a2:%f a3:%f a4:%f a5:%f a6:%f \n“a1a2a3a4a5a6);

int main(void)
{
    int i = 0;  
    int j = 0;  
    int k = 0;
float XYZX1 = 0Y1 = 0Z1 = 0;
float data[row][col];
#if 0
//获取原始数据
float data[row][col]={42*4271*71(-11)*(-11)4271(-11)\
  (-26)*(-26)65*65(-3)*(-3)(-26)65(-3)\
  (-28)*(-28)4*4(-1)*(-1)(-28)4(-1)\
  (-30)*(-30)45*455*5(-30)455\
  (-31)*(-31)22*22(-30)*(-30)(-31)22(-30)\
  (-36)*(-36)23*23(-2)*(-2)(-36)23(-2)};
#endif
#if 1
FILE *fd=fopen(“./txtEcheck.txt““r“);

for(i = 0 ; i < row ; i++)
{
for(k = 0;k < 10;k++)
{
fscanf(fd“%f%f%f\n“&X&Y&Z);
X1 += X;
Y1 += Y;
Z1 += Z;
}

X = X1 / 10;
Y = Y1 / 10;
Z = Z1 / 10;
//printf(“X:%f Y=:%f Z:%f \n“XYZ);
X1 = 0;
Y1 = 0;
Z1 = 0;
for(j = 0 ; j < col ; j++)
{
switch(j)
{
case 0:data[i][j]=X*X;break;
case 1:data[i][j]=Y*Y;break;
case 2:data[i][j]=Z*Z;break;
case 3:data[i][j]=X;break;
case 4:data[i][j]=Y;break;
case 5:data[i][j]=Z;break;
}
}
}
#endif
#if 0
for(i = 0; i < row ;i++)
{
for(j = 0;j < col;j++)
{
printf(“%f “data[i][j]);
}
printf(“\n“);
}
#endif

#if 1
float y[row][1];
for(i = 0;i for(j=0;j<1;j++)
y[i][j]=2000;


//存放原始数据
struct _Matrix m1;  
    //初始化内存  
    matrix_set_m(&m1row);  
    matrix_set_n(&m1col);  
    matrix_init

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-10 15:02  磁力计校准算法\
     文件       15227  2017-11-10 15:02  磁力计校准算法\a.out
     文件        5463  2017-11-10 15:02  磁力计校准算法\main.c
     文件        9655  2017-11-08 17:34  磁力计校准算法\matrix.c
     文件        1956  2017-11-08 17:34  磁力计校准算法\matrix.h
     文件        6222  2017-11-08 17:34  磁力计校准算法\tags
     目录           0  2017-11-10 10:25  磁力计校准算法\ttxt\
     文件        7420  2017-11-09 20:27  磁力计校准算法\ttxt\txt.txt
     文件        1802  2017-11-09 16:08  磁力计校准算法\ttxt\txt1.txt
     文件        7595  2017-11-09 20:20  磁力计校准算法\ttxt\txt4.txt
     文件         743  2017-11-09 20:24  磁力计校准算法\ttxt\txt4-1.txt
     文件       12288  2017-11-09 16:03  磁力计校准算法\ttxt\txtc.txt
     文件        7408  2017-11-10 10:35  磁力计校准算法\txt1.txt
     文件        7423  2017-11-10 10:44  磁力计校准算法\txt2.txt
     文件        2400  2017-11-10 14:19  磁力计校准算法\txtcheck.txt
     文件       14702  2017-11-10 15:00  磁力计校准算法\txtEcheck.txt

评论

共有 条评论

相关资源