base program for tilt measurement
Dependencies: COG4050_ADT7420 ADXL362
Fork of COG4050_adxl355_adxl357-ver2 by
Calibration/CALIBRATION.h@8:9e6ead2ee8d7, 2018-08-21 (annotated)
- 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?
User | Revision | Line number | New 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 |