ISSDK  1.8
IoT Sensing Software Development Kit
fxos8700_demo.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 - 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 /**
10  * @file fxos8700_demo.c
11  * @brief The fxos8700_demo.c file implements the ISSDK FXOS8700 sensor
12  * driver example demonstration with interrupt mode.
13  */
14 
15 //-----------------------------------------------------------------------
16 // SDK Includes
17 //-----------------------------------------------------------------------
18 #include "board.h"
19 #include "pin_mux.h"
20 #include "clock_config.h"
21 
22 //-----------------------------------------------------------------------
23 // CMSIS Includes
24 //-----------------------------------------------------------------------
25 #include "Driver_I2C.h"
26 #include "Driver_USART.h"
27 
28 //-----------------------------------------------------------------------
29 // ISSDK Includes
30 //-----------------------------------------------------------------------
31 #include "issdk_hal.h"
32 #include "gpio_driver.h"
33 #include "fxos8700_drv.h"
34 #include "host_io_uart.h"
35 #include "systick_utils.h"
36 #include "auto_detection_service.h"
37 
38 //-----------------------------------------------------------------------
39 // Macros
40 //-----------------------------------------------------------------------
41 #define RAW_ACCEL_MAG_DATA_SIZE 12
42 #define FXOS8700_STREAM_DATA_SIZE 17
43 
44 /*! @brief Unique Name for this application which should match the target GUI pkg name. */
45 #define APPLICATION_NAME "FXOS8700 6-axis (Accel, Mag) Demo"
46 /*! @brief Version to distinguish between instances the same application based on target Shield and updates. */
47 #define APPLICATION_VERSION "2.5"
48 
49 /*! @brief This structure defines the fxos8700 raw data buffer.*/
50 typedef struct
51 {
52  uint32_t timestamp; /*! The time, this sample was recorded. */
53  int16_t accel[3]; /*!< The accel data */
54  int16_t mag[3]; /*!< The mag data */
55  uint8_t intsrc;
57 
58 //-----------------------------------------------------------------------
59 // Constants
60 //-----------------------------------------------------------------------
61 /*! Prepare the register write list to configure FXOS8700 in non-FIFO mode. */
63  /*! Clear F_SETUP. */
64  {FXOS8700_F_SETUP, 0x00, 0x00},
65  /*! Set FS 2G Mode. */
67  /*! Configure the FXOS8700 to 100Hz sampling rate. */
69  /*! Configure the FXOS8700 to Set High Resolution Mode. */
72  FXOS8700_CTRL_REG3_IPOL_MASK | FXOS8700_CTRL_REG3_PP_OD_MASK}, /*! Active High, Push-Pull */
78  {FXOS8700_CTRL_REG5,0x7E,0x00},
79  {FXOS8700_CTRL_REG4,255,0x00},
80 
81  //PL registers
84  {FXOS8700_PL_COUNT, 0x40, 0x00},//ff
87  {FXOS8700_PL_THS_REG,132,0x00},
88 
89  //Freefall registers
95  {FXOS8700_A_FFMT_COUNT,6,0x00},
96 
97  //Pulse registers
98  {FXOS8700_PULSE_CFG,21,0x00},
99  {FXOS8700_PULSE_TMLT,80,0x00},
100  {FXOS8700_PULSE_LTCY,240,0x00},
101  {FXOS8700_PULSE_THSX,55,0x00},
102  {FXOS8700_PULSE_THSY,55,0x00},
103  {FXOS8700_PULSE_THSZ,82,0x00},
104 
105  //VECM
106  { FXOS8700_A_VECM_CNT,15,0x00},
107  { FXOS8700_A_VECM_THS_LSB,88,0x00},
108  { FXOS8700_A_VECM_CFG,72,0x00},
111 
113 
114 /*! Command definition to read the Accel+Mag Data */
117 
119  {.readFrom = FXOS8700_INT_SOURCE, .numBytes = 1}, __END_READ_DATA__};
120 
122  {.readFrom = FXOS8700_A_FFMT_SRC , .numBytes = 1}, __END_READ_DATA__};
123 
125  {.readFrom = FXOS8700_PL_STATUS, .numBytes = 1}, __END_READ_DATA__};
126 
127 //-----------------------------------------------------------------------
128 // Global Variables
129 //-----------------------------------------------------------------------
132 volatile bool bStreamingEnabled = false, bFxos8700DataReady = false, bFxos8700Ready = false;
133 uint8_t gStreamID; /* The auto assigned Stream ID. */
136 
137 //-----------------------------------------------------------------------
138 // Functions
139 //-----------------------------------------------------------------------
140 /* This is the Sensor Data Ready ISR implementation.*/
141 void fxos8700_isr_callback(void *pUserData)
142 { /*! @brief Set flag to indicate Sensor has signalled data ready. */
143  bFxos8700DataReady = true;
144 }
145 
146 /* Handler for Device Info and Streaming Control Commands. */
148  uint8_t tag, uint8_t *hostCommand, uint8_t *hostResponse, size_t *hostMsgSize, size_t respBufferSize)
149 {
150  bool success = false;
151 
152  /* If it is Host requesting Device Info, send Board Name and Shield Name. */
153  if (tag == HOST_PRO_INT_DEV_TAG)
154  { /* Byte 1 : Payload - Length of APPLICATION_NAME (b)
155  * Bytes=b : Payload Application Name
156  * Byte b+1 : Payload - Length of BOARD_NAME (s)
157  * Bytes=s : Payload Board Name
158  * Byte b+s+2 : Payload - Length of SHIELD_NAME (v)
159  * Bytes=v : Payload Shield Name */
160 
161  size_t appNameLen = strlen(embAppName);
162  size_t boardNameLen = strlen(boardString);
163  size_t shieldNameLen = strlen(shieldString);
164 
165  if (respBufferSize >= boardNameLen + shieldNameLen + appNameLen + 3)
166  { /* We have sufficient buffer. */
167  *hostMsgSize = 0;
168  }
169  else
170  {
171  return false;
172  }
173 
174  hostResponse[*hostMsgSize] = appNameLen;
175  *hostMsgSize += 1;
176 
177  memcpy(hostResponse + *hostMsgSize, embAppName, appNameLen);
178  *hostMsgSize += appNameLen;
179 
180  hostResponse[*hostMsgSize] = boardNameLen;
181  *hostMsgSize += 1;
182 
183  memcpy(hostResponse + *hostMsgSize, boardString, boardNameLen);
184  *hostMsgSize += boardNameLen;
185 
186  hostResponse[*hostMsgSize] = shieldNameLen;
187  *hostMsgSize += 1;
188 
189  memcpy(hostResponse + *hostMsgSize, shieldString, shieldNameLen);
190  *hostMsgSize += shieldNameLen;
191 
192  return true;
193  }
194 
195  /* If it is Host sending Streaming Commands, take necessary actions. */
196  if ((tag == (HOST_PRO_INT_CMD_TAG | HOST_PRO_CMD_W_CFG_TAG)) &&
198  { /* Byte 1 : Payload - Operation Code (Start/Stop Operation Code)
199  * Byte 2 : Payload - Stream ID (Target Stream for carrying out operation) */
200  switch (hostCommand[0]) /* Execute desired operation (Start/Stop) on the requested Stream. */
201  {
202  case HOST_CMD_START:
203  if (hostCommand[1] == gStreamID && bFxos8700Ready && bStreamingEnabled == false)
204  {
206  bStreamingEnabled = true;
207  success = true;
208  }
209  break;
210  case HOST_CMD_STOP:
211  if (hostCommand[1] == gStreamID && bFxos8700Ready && bStreamingEnabled == true)
212  {
213  pGpioDriver->clr_pin(&GREEN_LED);
214  bStreamingEnabled = false;
215  success = true;
216  }
217  break;
218  default:
219  break;
220  }
221  *hostMsgSize = 0; /* Zero payload in response. */
222  }
223 
224  return success;
225 }
226 
227 /*!
228  * @brief Main function
229  */
230 int main(void)
231 {
232  int32_t status;
234 
235  fxos8700_i2c_sensorhandle_t fxos8700Driver;
237 
238  ARM_DRIVER_I2C *I2Cdrv = &I2C_S_DRIVER;
239  ARM_DRIVER_USART *pUartDriver = &HOST_S_DRIVER;
240 
241  /*! Initialize the MCU hardware. */
244 
245  /* Create the Short Application Name String for ADS. */
246  sprintf(embAppName, "%s:%s", APPLICATION_NAME, APPLICATION_VERSION);
247 
248  /* Run ADS. */
250 
251  /* Create the Full Application Name String for Device Info Response. */
253 
254  /*! Initialize INT1_FXAS21002 pin used by FRDM board */
255  pGpioDriver->pin_init(&FXOS8700_INT2, GPIO_DIRECTION_IN, NULL, &fxos8700_isr_callback, NULL);
256 
257  /*! Initialize RGB LED pin used by FRDM board */
258  pGpioDriver->pin_init(&GREEN_LED, GPIO_DIRECTION_OUT, NULL, NULL, NULL);
259 
260  /*! Initialize the I2C driver. */
261  status = I2Cdrv->Initialize(I2C_S_SIGNAL_EVENT);
262  if (ARM_DRIVER_OK != status)
263  {
264  return -1;
265  }
266 
267  /*! Set the I2C Power mode. */
268  status = I2Cdrv->PowerControl(ARM_POWER_FULL);
269  if (ARM_DRIVER_OK != status)
270  {
271  return -1;
272  }
273 
274  /*! Set the I2C bus speed. */
275  status = I2Cdrv->Control(ARM_I2C_BUS_SPEED, ARM_I2C_BUS_SPEED_FAST);
276  if (ARM_DRIVER_OK != status)
277  {
278  return -1;
279  }
280 
281  /*! Initialize the UART driver. */
282  status = pUartDriver->Initialize(HOST_S_SIGNAL_EVENT);
283  if (ARM_DRIVER_OK != status)
284  {
285  return -1;
286  }
287 
288  /*! Set the UART Power mode. */
289  status = pUartDriver->PowerControl(ARM_POWER_FULL);
290  if (ARM_DRIVER_OK != status)
291  {
292  return -1;
293  }
294 
295  /*! Set UART Baud Rate. */
296  status = pUartDriver->Control(ARM_USART_MODE_ASYNCHRONOUS, BOARD_DEBUG_UART_BAUDRATE);
297  if (ARM_DRIVER_OK != status)
298  {
299  return -1;
300  }
301 
302  /*! Initialize the FXOS8700 sensor driver. */
305  if (SENSOR_ERROR_NONE == status)
306  {
307  /*! Set the task to be executed while waiting for I2C transactions to complete. */
309 
310  /*! Configure the fxos8700 sensor driver. */
311  status = FXOS8700_I2C_Configure(&fxos8700Driver, fxos8700_Config_InterruptHybrid);
312  if (SENSOR_ERROR_NONE == status)
313  {
314  bFxos8700Ready = true;
315  }
316  }
317 
318  /*! Initialize streaming and assign a Stream ID. */
319  gStreamID =
320  Host_IO_Init(pUartDriver, (void *)fxos8700Driver.pCommDrv, &fxos8700Driver.deviceInfo, NULL, FXOS8700_I2C_ADDR);
321  /* Confirm if a valid Stream ID has been allocated for this stream. */
322  if (0 == gStreamID)
323  {
324  bFxos8700Ready = false;
325  }
326  else
327  {
328  /*! Populate streaming header. */
330  pGpioDriver->clr_pin(&GREEN_LED);
331  }
332 
333  for (;;) /* Forever loop */
334  { /* Call UART Non-Blocking Receive. */
336 
337  /* Process packets only if streaming has been enabled by Host and ISR is available.
338  * In ISR Mode we do not need to check Data Ready Register.
339  * The receipt of interrupt will indicate data is ready. */
340  if (false == bStreamingEnabled || false == bFxos8700DataReady)
341  {
342  SMC_SetPowerModeWait(SMC); /* Power save, wait if nothing to do. */
343  continue;
344  }
345  else
346  { /*! Clear the data ready flag, it will be set again by the ISR. */
347  bFxos8700DataReady = false;
348  pGpioDriver->toggle_pin(&GREEN_LED);
349  }
350 
351  /*! Read the raw sensor data from the fxos8700. */
352  status = FXOS8700_I2C_ReadData(&fxos8700Driver, FXOS8700_ACCEL_READ, data);
353  if (ARM_DRIVER_OK != status)
354  { /* Loop, if sample read failed. */
355  continue;
356  }
357 
358  /* Update timestamp from Systick framework. */
360 
361  /*! Convert the raw sensor data to signed 16-bit container for display to the debug port. */
362  rawData.accel[0] = ((int16_t)data[0] << 8) | data[1];
363  rawData.accel[0] /= 4;
364  rawData.accel[1] = ((int16_t)data[2] << 8) | data[3];
365  rawData.accel[1] /= 4;
366  rawData.accel[2] = ((int16_t)data[4] << 8) | data[5];
367  rawData.accel[2] /= 4;
368  rawData.mag[0] = ((int16_t)data[6] << 8) | data[7];
369  rawData.mag[1] = ((int16_t)data[8] << 8) | data[9];
370  rawData.mag[2] = ((int16_t)data[10] << 8) | data[11];
371 
372  status = FXOS8700_I2C_ReadData(&fxos8700Driver, cFXOS8700_int_src, &regdata);
373 
374  // The following condition checks for multiple interrupts occuring at the same time and sends only one out as per order below.
375  // Check for Freefall interrupt
376  if((regdata & 0x04) == 0x04)
377  {
378  rawData.intsrc = 0x04;
379  }
380  // Check for Vector Magnitude change interrupt
381  else if((regdata & 0x02) == 0x02)
382  {
383  rawData.intsrc = 0x02;
384  }
385  // Else send other interrupts
386  else
387  {
388  rawData.intsrc = regdata;
389  }
390 
391  // read FFMT interrupt source register to clear flags
392  status = FXOS8700_I2C_ReadData(&fxos8700Driver, cFXOS8700_int_src, &regdata);
393  status = FXOS8700_I2C_ReadData(&fxos8700Driver, cFXOS8700_ffmt_src, &regdata);
394  status = FXOS8700_I2C_ReadData(&fxos8700Driver, cFXOS8700_pl_status, &regdata);
395 
396  /* Copy Raw samples to Streaming Buffer. */
397  memcpy(streamingPacket + STREAMING_HEADER_LEN, &rawData, FXOS8700_STREAM_DATA_SIZE);
398  /* Send streaming packet to Host. */
399  Host_IO_Send(streamingPacket, sizeof(streamingPacket), HOST_FORMAT_HDLC);
400  }
401 }
int32_t FXOS8700_I2C_Initialize(fxos8700_i2c_sensorhandle_t *pSensorHandle, ARM_DRIVER_I2C *pBus, uint8_t index, uint16_t sAddress, uint8_t whoAmi)
The interface function to initialize the sensor.
Definition: fxos8700_drv.c:222
#define FXOS8700_PL_CFG_DBCNTM_CLEAR_MODE
Definition: fxos8700.h:779
#define FXOS8700_A_FFMT_CFG_YEFE_RAISE_EVENT
Definition: fxos8700.h:956
uint8_t Host_IO_Init(ARM_DRIVER_USART *pDrv, void *pBus, void *pDevInfo, void *spiSlaveParams, uint16_t slaveAddress)
Definition: host_io_uart.c:100
void Host_IO_Receive(host_cmd_proc_fn_t process_host_command, uint8_t encoding)
Definition: host_io_uart.c:207
This structure defines the Write command List.
Definition: sensor_drv.h:68
bool process_host_command(uint8_t tag, uint8_t *hostCommand, uint8_t *hostResponse, size_t *hostMsgSize, size_t respBufferSize)
#define FXOS8700_M_CTRL_REG2_M_AUTOINC_MASK
Definition: fxos8700.h:2634
int32_t status
#define FXOS8700_CTRL_REG5_INT_CFG_DRDY_MASK
Definition: fxos8700.h:1784
#define FXOS8700_CTRL_REG4_INT_EN_DRDY_EN
Definition: fxos8700.h:1755
#define RAW_ACCEL_MAG_DATA_SIZE
Definition: fxos8700_demo.c:41
#define FXOS8700_A_FFMT_CFG_XEFE_MASK
Definition: fxos8700.h:929
ARM_DRIVER_I2C * pCommDrv
Definition: fxos8700_drv.h:47
uint8_t gStreamID
char shieldString[ADS_MAX_STRING_LENGTH]
status_t SMC_SetPowerModeVlpr(void *arg)
Configures the system to VLPR power mode. API name used from Kinetis family to maintain compatibility...
Definition: lpc54114.c:169
const registerwritelist_t fxos8700_Config_InterruptHybrid[]
Definition: fxos8700_demo.c:62
#define FXOS8700_M_CTRL_REG1_M_OS_MASK
Definition: fxos8700.h:2550
The host_io_uart.h file contains the Host Protocol interface definitions and configuration.
#define FXOS8700_M_CTRL_REG1_M_HMS_MASK
Definition: fxos8700.h:2547
const registerreadlist_t FXOS8700_ACCEL_READ[]
#define FXOS8700_WHO_AM_I_PROD_VALUE
Definition: fxos8700.h:146
#define FXOS8700_CTRL_REG1_DR_MASK
Definition: fxos8700.h:1504
#define HOST_PRO_CMD_W_CFG_TAG
Definition: host_io_uart.h:63
Access structure of the GPIO Driver.
Definition: Driver_GPIO.h:38
#define FXOS8700_M_CTRL_REG1_M_HMS_HYBRID_MODE
Definition: fxos8700.h:2595
#define SMC
Definition: lpc54114.h:118
GENERIC_DRIVER_GPIO * pGpioDriver
#define FXOS8700_INT2
#define FXOS8700_A_FFMT_CFG_OAE_FREEFALL
Definition: fxos8700.h:950
#define __END_WRITE_DATA__
Definition: sensor_drv.h:45
#define FXOS8700_M_CTRL_REG2_M_AUTOINC_HYBRID_MODE
Definition: fxos8700.h:2641
void(* clr_pin)(pinID_t aPinId)
Definition: Driver_GPIO.h:47
typedef int32_t(DATA_FORMAT_Append_t))(void *pData
The interface function to append the data on the formated stream.
#define HOST_S_SIGNAL_EVENT
Definition: frdm_k64f.h:94
#define FXOS8700_A_FFMT_CFG_OAE_MASK
Definition: fxos8700.h:938
#define FXOS8700_CTRL_REG3_PP_OD_MASK
Definition: fxos8700.h:1629
#define I2C_S_SIGNAL_EVENT
Definition: issdk_hal.h:34
This defines the sensor specific information for I2C.
Definition: fxos8700_drv.h:44
#define I2C_S_DRIVER
Definition: issdk_hal.h:33
int32_t FXOS8700_I2C_Configure(fxos8700_i2c_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList)
The interface function to configure he sensor.
Definition: fxos8700_drv.c:260
char embAppName[ADS_MAX_STRING_LENGTH]
void Host_IO_Add_ISO_Header(uint8_t streamID, uint8_t *pStreamingPacket, size_t sizePayload)
Definition: host_io_uart.c:86
#define BOARD_DEBUG_UART_BAUDRATE
Definition: board.h:31
int32_t FXOS8700_I2C_ReadData(fxos8700_i2c_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer)
The interface function to read the sensor data.
Definition: fxos8700_drv.c:305
#define FXOS8700_CTRL_REG4_INT_EN_DRDY_MASK
Definition: fxos8700.h:1711
#define BOARD_BootClockRUN
Definition: clock_config.h:19
#define FXOS8700_PL_CFG_DBCNTM_MASK
Definition: fxos8700.h:770
#define APPLICATION_NAME
Unique Name for this application which should match the target GUI pkg name.
Definition: fxos8700_demo.c:45
void(* registeridlefunction_t)(void *userParam)
This is the register idle function type.
Definition: sensor_drv.h:97
uint8_t streamingPacket[STREAMING_HEADER_LEN+FXLS8962_STREAM_DATA_SIZE]
GENERIC_DRIVER_GPIO Driver_GPIO_KSDK
Definition: gpio_driver.c:177
#define FXOS8700_M_CTRL_REG1_M_ACAL_EN
Definition: fxos8700.h:2566
#define FXOS8700_A_FFMT_CFG_ZEFE_RAISE_EVENT
Definition: fxos8700.h:953
void Host_IO_Send(uint8_t *pMsg, size_t size, uint8_t encoding)
Definition: host_io_uart.c:136
void BOARD_SystickStart(int32_t *pStart)
Function to Record the Start systick.
Definition: systick_utils.c:44
#define FXOS8700_M_CTRL_REG1_M_ACAL_MASK
Definition: fxos8700.h:2559
This structure defines the fxos8700 raw data buffer.
Definition: fxos8700_demo.c:50
uint32_t BOARD_SystickElapsedTime_us(int32_t *pStart)
Function to compute the Elapsed Time.
Definition: systick_utils.c:64
uint8_t data[FXLS8962_DATA_SIZE]
char boardString[ADS_MAX_STRING_LENGTH]
volatile bool bStreamingEnabled
#define FXOS8700_CTRL_REG5_INT_CFG_DRDY_INT2
Definition: fxos8700.h:1826
#define __END_READ_DATA__
Definition: sensor_drv.h:51
#define HOST_PRO_INT_DEV_TAG
Definition: host_io_uart.h:59
void BOARD_RunADS(const char *appName, char *boardString, char *shieldString, size_t bufferLength)
The function to register Application Name and initialte ADS.
#define FXOS8700_XYZ_DATA_CFG_FS_MASK
Definition: fxos8700.h:647
#define FXOS8700_CTRL_REG1_DR_HYBRID_100_HZ
Definition: fxos8700.h:1528
#define APPLICATION_VERSION
Version to distinguish between instances the same application based on target Shield and updates...
Definition: fxos8700_demo.c:47
ARM_DRIVER_I2C * I2Cdrv
fxos8700_accelmagdata_t rawData
const registerreadlist_t cFXOS8700_pl_status[]
#define FXOS8700_CTRL_REG2_MODS_HIGH_RES
Definition: fxos8700.h:1599
#define FXOS8700_XYZ_DATA_CFG_FS_2G_0P244
Definition: fxos8700.h:660
const registerreadlist_t cFXOS8700_ffmt_src[]
#define FXOS8700_A_VECM_THS_MSB_A_VBECM_THS_MASK
Definition: fxos8700.h:2827
uint16_t readFrom
Definition: sensor_drv.h:80
volatile bool bFxos8700DataReady
#define FXOS8700_PL_BF_ZCOMP_ZLOCK_MASK
Definition: fxos8700.h:831
void(* toggle_pin)(pinID_t aPinId)
Definition: Driver_GPIO.h:48
#define ADS_MAX_STRING_LENGTH
The fxos8700_drv.h file describes the fxos8700 driver interface and structures.
int main(void)
Main function.
#define FXOS8700_PL_BF_ZCOMP_BKFR_MASK
Definition: fxos8700.h:834
#define FXOS8700_CTRL_REG2_MODS_MASK
Definition: fxos8700.h:1568
void BOARD_SystickEnable(void)
Function to enable systicks framework.
Definition: systick_utils.c:35
#define STREAMING_HEADER_LEN
Definition: host_io_uart.h:25
status_t SMC_SetPowerModeWait(void *arg)
Configures the system to WAIT power mode. API name used from Kinetis family to maintain compatibility...
Definition: lpc54114.c:155
void(* pin_init)(pinID_t aPinId, gpio_direction_t dir, void *apPinConfig, gpio_isr_handler_t aIsrHandler, void *apUserData)
Definition: Driver_GPIO.h:41
volatile bool bFxos8700Ready
This structure defines the Read command List.
Definition: sensor_drv.h:78
ARM Systick Utilities.
#define FXOS8700_STREAM_DATA_SIZE
Definition: fxos8700_demo.c:42
gpioHandleKSDK_t GREEN_LED
Definition: frdm_k64f.c:188
#define I2C_S_DEVICE_INDEX
Definition: issdk_hal.h:35
#define FXOS8700_CTRL_REG3_PP_OD_PUSH_PULL
Definition: fxos8700.h:1681
void FXOS8700_I2C_SetIdleTask(fxos8700_i2c_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the I2C Idle Task.
Definition: fxos8700_drv.c:252
#define FXOS8700_CTRL_REG3_IPOL_MASK
Definition: fxos8700.h:1632
#define FXOS8700_A_FFMT_THS_THS_MASK
Definition: fxos8700.h:1033
#define HOST_PRO_INT_CMD_TAG
Bit aligned values for Host Protocol Interface IDs (Bits 5-6).
Definition: host_io_uart.h:57
#define FXOS8700_PL_CFG_PL_EN_MASK
Definition: fxos8700.h:767
#define FXOS8700_A_VECM_THS_MSB_A_VBECM_DBCNTM_MASK
Definition: fxos8700.h:2830
void fxos8700_isr_callback(void *pUserData)
#define FXOS8700_I2C_ADDR
#define SHIELD_NAME
#define FXOS8700_A_FFMT_CFG_YEFE_MASK
Definition: fxos8700.h:932
int32_t gSystick
#define FXOS8700_A_FFMT_CFG_ZEFE_MASK
Definition: fxos8700.h:935
registerDeviceInfo_t deviceInfo
Definition: fxos8700_drv.h:46
#define FXOS8700_CTRL_REG3_IPOL_ACTIVE_HIGH
Definition: fxos8700.h:1680
#define FXOS8700_PL_CFG_PL_EN_ENABLE
Definition: fxos8700.h:782
const registerreadlist_t cFXOS8700_int_src[]
#define FXOS8700_M_CTRL_REG1_M_OS_OSR0
Definition: fxos8700.h:2577
#define HOST_S_DRIVER
Definition: frdm_k64f.h:93
#define FXOS8700_A_FFMT_CFG_XEFE_RAISE_EVENT
Definition: fxos8700.h:959