base program for tilt measurement

Dependencies:   COG4050_ADT7420 ADXL362

Fork of COG4050_adxl355_adxl357-ver2 by ADI_CAC

Committer:
vtoffoli
Date:
Tue Aug 21 13:25:37 2018 +0000
Revision:
8:9e6ead2ee8d7
Child:
9:6c803986dbde
COG+ADXL355

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vtoffoli 8:9e6ead2ee8d7 1
vtoffoli 8:9e6ead2ee8d7 2 #ifndef CALIBRATION_H_
vtoffoli 8:9e6ead2ee8d7 3 #define CALIBRATION_H_
vtoffoli 8:9e6ead2ee8d7 4
vtoffoli 8:9e6ead2ee8d7 5 class CALIBRATION
vtoffoli 8:9e6ead2ee8d7 6 {
vtoffoli 8:9e6ead2ee8d7 7 public:
vtoffoli 8:9e6ead2ee8d7 8 // -------------------------- //
vtoffoli 8:9e6ead2ee8d7 9 // CONST AND VARIABLES //
vtoffoli 8:9e6ead2ee8d7 10 // -------------------------- //
vtoffoli 8:9e6ead2ee8d7 11 typedef struct {
vtoffoli 8:9e6ead2ee8d7 12 // sensitivity
vtoffoli 8:9e6ead2ee8d7 13 float S[2][2];
vtoffoli 8:9e6ead2ee8d7 14 float St;
vtoffoli 8:9e6ead2ee8d7 15 // 0g offset
vtoffoli 8:9e6ead2ee8d7 16 float B[2][0];
vtoffoli 8:9e6ead2ee8d7 17 } calib_data_t;
vtoffoli 8:9e6ead2ee8d7 18 typedef struct {
vtoffoli 8:9e6ead2ee8d7 19 float x_matrix[12][4];
vtoffoli 8:9e6ead2ee8d7 20 float x_transpose[4][12];
vtoffoli 8:9e6ead2ee8d7 21 float xtx_product[12][12];
vtoffoli 8:9e6ead2ee8d7 22 } matrix_data_t;
vtoffoli 8:9e6ead2ee8d7 23 float g_matrix[3][12];
vtoffoli 8:9e6ead2ee8d7 24 matrix_data_t coeff_matrix;
vtoffoli 8:9e6ead2ee8d7 25 float w_matrix[4][3];
vtoffoli 8:9e6ead2ee8d7 26 // -------------------------- //
vtoffoli 8:9e6ead2ee8d7 27 // FUNCTIONS //
vtoffoli 8:9e6ead2ee8d7 28 // -------------------------- //
vtoffoli 8:9e6ead2ee8d7 29
vtoffoli 8:9e6ead2ee8d7 30 calib_data_t convert_2p(float angle[11][2], float meas[11][2]);
vtoffoli 8:9e6ead2ee8d7 31 calib_data_t convert_6p(float angle[11][2], float meas[11][2]);
vtoffoli 8:9e6ead2ee8d7 32 calib_data_t convert_12p(float angle[11][2], float meas[11][2]);
vtoffoli 8:9e6ead2ee8d7 33
vtoffoli 8:9e6ead2ee8d7 34 float matrix_determinant(float a[12][12], float k);
vtoffoli 8:9e6ead2ee8d7 35 float matrix_cofactor(float a[12][2], float k);
vtoffoli 8:9e6ead2ee8d7 36
vtoffoli 8:9e6ead2ee8d7 37 void matrix_reset();
vtoffoli 8:9e6ead2ee8d7 38 void matrix_g(float angle[4][12]); // angle expressed in degree!
vtoffoli 8:9e6ead2ee8d7 39 void matrix_x(float meas[3][12]);
vtoffoli 8:9e6ead2ee8d7 40 private:
vtoffoli 8:9e6ead2ee8d7 41 };
vtoffoli 8:9e6ead2ee8d7 42
vtoffoli 8:9e6ead2ee8d7 43 #endif