void imuUpdateAccelerometer(void) { #ifdef HIL if (sensors(SENSOR_ACC) && !hilActive) { updateAccelerationReadings(); isAccelUpdatedAtLeastOnce = true; } #else if (sensors(SENSOR_ACC)) { updateAccelerationReadings(); isAccelUpdatedAtLeastOnce = true; } #endif }
void imuUpdateAccelerometer(rollAndPitchTrims_t *accelerometerTrims) { if (sensors(SENSOR_ACC)) { updateAccelerationReadings(accelerometerTrims); isAccelUpdatedAtLeastOnce = true; } }
void imuUpdate(rollAndPitchTrims_t *accelerometerTrims) { gyroUpdate(); if (sensors(SENSOR_ACC)) { updateAccelerationReadings(accelerometerTrims); // TODO rename to accelerometerUpdate and rename many other 'Acceleration' references to be 'Accelerometer' imuCalculateEstimatedAttitude(); } else { accADC[X] = 0; accADC[Y] = 0; accADC[Z] = 0; } }
void computeIMU(rollAndPitchTrims_t *accelerometerTrims, uint8_t mixerConfiguration) { static int16_t gyroYawSmooth = 0; gyroGetADC(); if (sensors(SENSOR_ACC)) { updateAccelerationReadings(accelerometerTrims); getEstimatedAttitude(); } else { accADC[X] = 0; accADC[Y] = 0; accADC[Z] = 0; } gyroData[FD_ROLL] = gyroADC[FD_ROLL]; gyroData[FD_PITCH] = gyroADC[FD_PITCH]; if (mixerConfiguration == MULTITYPE_TRI) { gyroData[FD_YAW] = (gyroYawSmooth * 2 + gyroADC[FD_YAW]) / 3; gyroYawSmooth = gyroData[FD_YAW]; } else { gyroData[FD_YAW] = gyroADC[FD_YAW]; } }