45 #define START_TIMER(x) x = SYST_CVR & 0x00FFFFFF
46 #define STOP_TIMER(x) x -= SYST_CVR & 0x00FFFFFF; if (x < 0) x += SYST_RVR
56 #if defined COMPUTE_3DOF_B_BASIC || defined COMPUTE_6DOF_GB_BASIC || defined COMPUTE_9DOF_GBY_KALMAN
61 #if defined COMPUTE_1DOF_P_BASIC
62 pState->thisSV_1DOF_P_BASIC.resetflag =
true;
64 #if defined COMPUTE_3DOF_G_BASIC
69 #if defined COMPUTE_3DOF_B_BASIC
74 #if defined COMPUTE_3DOF_Y_BASIC
79 #if defined COMPUTE_6DOF_GB_BASIC
84 #if defined COMPUTE_6DOF_GY_KALMAN
89 #if defined COMPUTE_9DOF_GBY_KALMAN
101 int8 initiatemagcal = 0;
103 #if defined COMPUTE_3DOF_B_BASIC || defined COMPUTE_6DOF_GB_BASIC || defined COMPUTE_9DOF_GBY_KALMAN
125 #if defined COMPUTE_1DOF_P_BASIC
130 STOP_TIMER(pState->thisSV_1DOF_P_BASIC.systick);
136 #if defined COMPUTE_3DOF_G_BASIC
149 #if defined COMPUTE_3DOF_B_BASIC
163 #if defined COMPUTE_3DOF_Y_BASIC
176 #if defined COMPUTE_6DOF_GB_BASIC
191 #if defined COMPUTE_6DOF_GY_KALMAN
205 #if defined COMPUTE_9DOF_GBY_KALMAN
218 #endif // COMPUTE_9DOF_GBY_KALMAN
221 #if defined COMPUTE_3DOF_B_BASIC || defined COMPUTE_6DOF_GB_BASIC || defined COMPUTE_9DOF_GBY_KALMAN
254 return initiatemagcal;
260 #if defined COMPUTE_3DOF_B_BASIC || defined COMPUTE_6DOF_GB_BASIC || defined COMPUTE_9DOF_GBY_KALMAN
void fRunMagCalibration(struct MagCalibration *pthisMagCal, struct MagneticBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
void Fusion_Init(fusion_state_t *pState)
int8 Fusion_Run(fusion_state_t *pState, fusion_algorithmConfig_t *pAlgorithmConfig)
struct MagCalibration thisMagCal
struct SV_9DOF_GBY_KALMAN thisSV_9DOF_GBY_KALMAN
void fRun_9DOF_GBY_KALMAN(struct SV_9DOF_GBY_KALMAN *pthisSV, struct AccelSensor *pthisAccel, struct MagSensor *pthisMag, struct GyroSensor *pthisGyro, struct MagCalibration *pthisMagCal, int16 ithisCoordSystem, int16 iOverSampleRatio)
struct AccelSensor thisAccel
void fRun_3DOF_B_BASIC(struct SV_3DOF_B_BASIC *pthisSV, struct MagSensor *pthisMag, int32 loopcounter, int16 ithisCoordSystem)
#define MINMEASUREMENTS4CAL
#define GYRO_OVERSAMPLE_RATIO
void fInitMagCalibration(struct MagCalibration *pthisMagCal, struct MagneticBuffer *pthisMagBuffer)
struct SV_6DOF_GY_KALMAN thisSV_6DOF_GY_KALMAN
void fRun_6DOF_GY_KALMAN(struct SV_6DOF_GY_KALMAN *pthisSV, struct AccelSensor *pthisAccel, struct GyroSensor *pthisGyro, int16 ithisCoordSystem, int16 iOverSampleRatio)
#define PARALLELNOTSEQUENTIAL
void fRun_3DOF_Y_BASIC(struct SV_3DOF_Y_BASIC *pthisSV, struct GyroSensor *pthisGyro, int32 loopcounter, int16 ithisCoordSystem, int16 iOverSampleRatio)
struct SV_3DOF_B_BASIC thisSV_3DOF_B_BASIC
void iUpdateMagnetometerBuffer(struct MagneticBuffer *pthisMagBuffer, struct AccelSensor *pthisAccel, struct MagSensor *pthisMag, int32 loopcounter)
quaternion_type algorithmToUse
The fusion_config.h file contains additional static configuration for the Sensor Fusion based Virtual...
struct SV_6DOF_GB_BASIC thisSV_6DOF_GB_BASIC
void fInvertMagCal(struct MagSensor *pthisMag, struct MagCalibration *pthisMagCal)
void fRun_3DOF_G_BASIC(struct SV_3DOF_G_BASIC *pthisSV, struct AccelSensor *pthisAccel, int32 loopcounter, int16 ithisCoordSystem)
struct SV_3DOF_G_BASIC thisSV_3DOF_G_BASIC
void MagCal_Run(fusion_state_t *pState)
struct SV_3DOF_Y_BASIC thisSV_3DOF_Y_BASIC
struct GyroSensor thisGyro
void fRun_1DOF_P_BASIC(struct SV_1DOF_P_BASIC *pthisSV, struct PressureSensor *pthisPressure, int32 loopcounter)
#define MINMEASUREMENTS10CAL
void fRun_6DOF_GB_BASIC(struct SV_6DOF_GB_BASIC *pthisSV, struct MagSensor *pthisMag, struct AccelSensor *pthisAccel, int32 loopcounter, int16 ithisCoordSystem)
#define MINMEASUREMENTS7CAL
struct MagneticBuffer thisMagBuffer