Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 229 → Rev 232

/branches/v0.60_MicroMag3_Nick666/compass.c
50,7 → 50,7
else if (MM3.AXIS == MM3_Z) SPDR = 0x53; // 1: x-Achse, 2: Y-Achse, 3: Z-Achse
else {MM3.STATE == MM3_IDLE;break;}
MM3.DRDY = SetDelay(10); // Laut Datenblatt max. Zeit bis Messung fertig (bei PS 1024)
MM3.DRDY = SetDelay(15); // Laut Datenblatt max. Zeit bis Messung fertig (bei PS 1024)
MM3.STATE = MM3_WAIT_DRDY;
break;
100,8 → 100,8
MM3.AXIS = MM3_X;
MM3.STATE = MM3_RESET;
// Zeitnahe Speicherung der aktuellen Nick-/Rollneigung in °
MM3.NickGrad = IntegralNick/Int2Grad_Faktor;
MM3.RollGrad = IntegralRoll/Int2Grad_Faktor;
MM3.NickGrad = IntegralNick/(EE_Parameter.UserParam1*8);
MM3.RollGrad = IntegralRoll/(EE_Parameter.UserParam2*8);
break;
}
}
121,9 → 121,8
//Neigungskompensation
y_corr = ((cos_roll * MM3.y_axis) + (sin_roll * MM3.z_axis));
x_corr = (((sin_roll * MM3.y_axis) - (cos_roll * MM3.z_axis)) * sin_nick) + (cos_nick * MM3.x_axis);
 
//Winkelberechnung
heading = arctan_f(x_corr, y_corr);
heading = arctan_i(x_corr, y_corr);
 
return (heading);
}