173 lines
6.6 KiB
C
173 lines
6.6 KiB
C
|
/******************** (C) COPYRIGHT 2020 GEEKIMU *******************************
|
|||
|
* File Name : calibrate.c
|
|||
|
* Current Version : V2.0 & ST 3.5.0
|
|||
|
* Author : zhanli 719901725@qq.com & JustFeng.
|
|||
|
* Date of Issued : 2015.10.3 zhanli : Create
|
|||
|
* Comments : <EFBFBD><EFBFBD>MCU<EFBFBD><EFBFBD>flash<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
********************************************************************************/
|
|||
|
|
|||
|
#ifndef _CALIBRATE_H_
|
|||
|
#define _CALIBRATE_H_
|
|||
|
|
|||
|
#include <stdint.h>
|
|||
|
#include <stdbool.h>
|
|||
|
|
|||
|
#define CALIBRATION_SIZE (8+8+8*3+8*3+sizeof(uint16_t))
|
|||
|
|
|||
|
typedef struct calibrate_struct
|
|||
|
{
|
|||
|
float temperature;
|
|||
|
float Gyr_Offset[3];
|
|||
|
float acc_offset[3];
|
|||
|
// scale and cross axis sensitivity
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ž<EFBFBD><C5BE><EFBFBD>
|
|||
|
float gyro_scale[3][3];
|
|||
|
float acc_scale[3][3];
|
|||
|
}calibrate_s, *calibrate_p;
|
|||
|
|
|||
|
typedef struct{
|
|||
|
float temp;
|
|||
|
float Gyr_Offset[3];
|
|||
|
float Acc_Offset[3];
|
|||
|
float Mag_Offset[3];
|
|||
|
float Mag_Scale[3][3];
|
|||
|
}Calibrate_Info;
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Calibrate_Init(void)
|
|||
|
* Description : <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : zhanli&719901725@qq.com & JustFeng.
|
|||
|
* Date : 2015/2/13 zhanli
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Calibrate_Init(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Init_Gyro_Offset(void)
|
|||
|
* Description : <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫֵ,<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫֵ
|
|||
|
* Author : zhanli&719901725@qq.com & JustFeng.
|
|||
|
* Date : 2015/10/3 zhanli
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Init_Gyro_Offset(Calibrate_Info *mCali_Info);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Compute_Gyro_Offset(void)
|
|||
|
* Description : <EFBFBD>ھ<EFBFBD>ֹʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡMPU6050<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><EFBFBD><EFBFBD>ƫ
|
|||
|
* Author : zhanli&719901725@qq.com & JustFeng.
|
|||
|
* Date : 2015/10/3 zhanli
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Compute_Gyro_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Store_Gyro_Offset(void)
|
|||
|
* Description : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>浽eeprom<EFBFBD><EFBFBD>
|
|||
|
* Author : zhanli&719901725@qq.com & JustFeng.
|
|||
|
* Date : 2015/10/3 zhanli
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Store_Gyro_Offset(Calibrate_Info *mCali_Info);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : void Clean_Gyro_Offset(void)
|
|||
|
* Description : <EFBFBD><EFBFBD>EEPROM<EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2015/10/3 zhanli
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Clean_Gyro_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Get_Acc_Offset(float* acc)
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/4 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Get_Gyro_Offset(float* gyro);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Save_Acc_Offset(float*)
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Save_Gyro_Offset(float* Gyr_Offset);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Reset_Acc_Offset(void)
|
|||
|
* Description : <EFBFBD><EFBFBD>EEPROM<EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Reset_Gyro_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Load_Acc_Offset()
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD>ƫֵ
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Load_Gyro_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Reset_Acc_Offset(void)
|
|||
|
* Description : <EFBFBD><EFBFBD>EEPROM<EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Load_Acc_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Get_Acc_Offset(float* acc)
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/4 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Get_Acc_Offset(float* acc);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Save_Acc_Offset(float*)
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Save_Acc_Offset(float* acc_offset);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Reset_Acc_Offset(void)
|
|||
|
* Description : <EFBFBD><EFBFBD>EEPROM<EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Reset_Acc_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Load_Mag_Offset()
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Load_Mag_Offset(void);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Get_Mag_Offset
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Get_Mag_Offset(float* mag);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Save_Mag_Offset
|
|||
|
* Description : <EFBFBD><EFBFBD>STM32<EFBFBD><EFBFBD>EEROM<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Save_Mag_Offset(float* mag_offset);
|
|||
|
|
|||
|
/**----------------------------------------------------------------------
|
|||
|
* Function : Reset_Mag_Offset
|
|||
|
* Description : <EFBFBD><EFBFBD>EEPROM<EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Author : JustFeng.
|
|||
|
* Date : 2016/12/2 JustFeng
|
|||
|
*---------------------------------------------------------------------**/
|
|||
|
void Reset_Mag_Offset(void);
|
|||
|
|
|||
|
#endif /* _CALIBRATE_H_ */
|