17 #include "fsl_debug_console.h"      19 #include "clock_config.h"           21 #ifndef CPU_LPC54114J256BD64_cm4    25 #include "fsl_ctimer.h"             29 #include "fsl_i2c_cmsis.h"    64     I2Cdrv->PowerControl(ARM_POWER_FULL);      
    65     I2Cdrv->Control(ARM_I2C_BUS_SPEED, ARM_I2C_BUS_SPEED_FAST);      
    71 #if F_USING_ACCEL || F_USING_MAG readSensors_t * readSensors
read all physical sensors 
 
struct ControlSubsystem controlSubsystem
used for serial communications 
 
This structure defines the device specific info required by register I/O. 
 
initializeFusionEngine_t * initializeFusionEngine
set sensor fusion structures to initial values 
 
int8_t MPL3115_Read(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg)
 
int8_t FXOS8700_Init(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg)
 
Provides function prototypes for driver level interfaces. 
 
struct PhysicalSensor sensors[3]
This implementation uses up to 3 sensors. 
 
An instance of PhysicalSensor structure type should be allocated for each physical sensors (combo dev...
 
setStatus_t * queueStatus
queue status change for next regular interval 
 
Application-specific status subsystem. 
 
conditionSensorReadings_t * conditionSensorReadings
preprocessing step for sensor fusion 
 
Defines control sub-system. 
 
The top level fusion structure. 
 
void initSensorFusionGlobals(SensorFusionGlobals *sfg, StatusSubsystem *pStatusSubsystem, ControlSubsystem *pControlSubsystem)
utility function to insert default values in the top level structure 
 
int8_t FXAS21002_Init(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg)
 
#define I2C_S_SIGNAL_EVENT
 
The register_io_i2c.h file declares low-level interface functions for reading and writing sensor regi...
 
SensorFusionGlobals sfg
This is the primary sensor fusion data structure. 
 
he ControlSubsystem encapsulates command and data streaming functions. 
 
#define BOARD_BootClockRUN
 
int8_t MPL3115_Init(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg)
 
void(* registeridlefunction_t)(void *userParam)
This is the register idle function type. 
 
runFusion_t * runFusion
run the fusion routines 
 
The fxas21002.h contains the fxas21002 sensor register definitions and its bit mask. 
 
#define FXAS21002_I2C_ADDR
 
The sensor_fusion.h file implements the top level programming interface. 
 
void pit_init(uint32_t microseconds)
 
setStatus_t * setStatus
change status indicator immediately 
 
uint8_t sUARTOutputBuffer[256]
main output buffer defined in control.c 
 
updateStatus_t * updateStatus
status=next status 
 
#define FUSION_HZ
(int) actual rate of fusion algorithm execution and sensor FIFO reads 
 
installSensor_t * installSensor
function for installing a new sensor into t 
 
struct ControlSubsystem * pControlSubsystem
 
int8_t initializeControlPort(ControlSubsystem *pComm)
Initialize the control subsystem and all related hardware. 
 
status_t SMC_SetPowerModeWait(void *arg)
Configures the system to WAIT power mode. API name used from Kinetis family to maintain compatibility...
 
struct StatusSubsystem statusSubsystem
provides visual (usually LED) status indicator 
 
int8_t FXOS8700_Read(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg)
 
registerDeviceInfo_t i2cBusInfo
 
#define I2C_S_DEVICE_INDEX
 
int8_t FXAS21002_Read(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg)
 
int main(void)
This is a bare-metal implementation of the NXP sensor fusion demo build. 
 
The fxos8700.h file contains the register definitions for FXOS8700 sensor driver. ...
 
void BOARD_InitDebugConsole(void)
 
void initializeStatusSubsystem(StatusSubsystem *pStatus)
 
#define FXOS8700_I2C_ADDR
 
void BOARD_InitPins(void)
Configures pin routing and optionally pin electrical features. 
 
streamData_t * stream
function to create packets for serial stream 
 
applyPerturbation_t * applyPerturbation
apply step function for testing purposes 
 
StatusSubsystem() provides an object-like interface for communicating status to the user...
 
int32_t loopcounter
counter incrementing each iteration of sensor fusion (typically 25Hz) 
 
Provides a simple abstraction for a periodic interval timer.