mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-15 12:25:20 +03:00
synced serial protocol to multiwii-dev 20120622
changed booleans to bitfield struct to match with 0622 no other functional changes, and not all enhancements (like boxlight) from 0622 are implemented yet NOT flight tested, use at your own risk. git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@172 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
This commit is contained in:
parent
2fd5645dce
commit
9c2204c179
11 changed files with 5584 additions and 5472 deletions
|
@ -17,7 +17,6 @@ float magneticDeclination = 0.0f; // calculated at startup from config
|
|||
int16_t gyroData[3] = { 0, 0, 0 };
|
||||
int16_t gyroZero[3] = { 0, 0, 0 };
|
||||
int16_t angle[2] = { 0, 0 }; // absolute angle inclination in multiple of 0.1 degree 180 deg = 1800
|
||||
int8_t smallAngle25 = 1;
|
||||
|
||||
static void getEstimatedAttitude(void);
|
||||
|
||||
|
@ -222,14 +221,14 @@ static void getEstimatedAttitude(void)
|
|||
rotateV(&EstM.V, deltaGyroAngle);
|
||||
|
||||
if (abs(accSmooth[ROLL]) < acc_25deg && abs(accSmooth[PITCH]) < acc_25deg && accSmooth[YAW] > 0)
|
||||
smallAngle25 = 1;
|
||||
f.SMALL_ANGLES_25 = 1;
|
||||
else
|
||||
smallAngle25 = 0;
|
||||
f.SMALL_ANGLES_25 = 0;
|
||||
|
||||
// Apply complimentary filter (Gyro drift correction)
|
||||
// If accel magnitude >1.4G or <0.6G and ACC vector outside of the limit range => we neutralize the effect of accelerometers in the angle estimation.
|
||||
// To do that, we just skip filter, as EstV already rotated by Gyro
|
||||
if ((36 < accMag && accMag < 196) || smallAngle25) {
|
||||
if ((36 < accMag && accMag < 196) || f.SMALL_ANGLES_25) {
|
||||
for (axis = 0; axis < 3; axis++)
|
||||
EstG.A[axis] = (EstG.A[axis] * (float)cfg.gyro_cmpf_factor + accSmooth[axis]) * INV_GYR_CMPF_FACTOR;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue