14,6 → 14,7 |
*/ |
|
#include "main.h" |
#include "math.h" |
|
MM3_struct MM3; |
|
63,8 → 64,8 |
return; // Jetzt gehts weiter in SIGNAL (SIG_SPI) |
|
case MM3_TILT: // Zeitnahe Speicherung der aktuellen Neigung in ° |
MM3.NickGrad = asin_i((float)Aktuell_ax/220*200); |
MM3.RollGrad = asin_i((float)Aktuell_ay/220*200); |
MM3.NickGrad = IntegralNick/(120*8); |
MM3.RollGrad = IntegralRoll/(120*8); |
|
MM3.AXIS = MM3_X; |
MM3.STATE = MM3_RESET; |
134,10 → 135,10 |
signed int heading; |
|
// Berechung von sinus und cosinus |
sin_nick = sin_i(MM3.NickGrad); |
cos_nick = cos_i(MM3.NickGrad); |
sin_roll = sin_i(MM3.RollGrad); |
cos_roll = cos_i(MM3.RollGrad); |
sin_nick = sin_f(MM3.NickGrad); |
cos_nick = cos_f(MM3.NickGrad); |
sin_roll = sin_f(MM3.RollGrad); |
cos_roll = cos_f(MM3.RollGrad); |
|
// Neigungskompensation |
x_corr = (cos_nick * MM3.x_axis) + (((sin_roll * MM3.y_axis) - (cos_roll * MM3.z_axis)) * sin_nick); |