![]() |
ISSDK
1.8
IoT Sensing Software Development Kit
|
The fxls896xaf_freemaster_usb_demo.c file implements FreeMASTER demo using the ISSDK FXLS896xAF sensor driver example demonstration with interrupt mode. More...
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "fsl_debug_console.h"
#include "math.h"
#include "fsl_uart.h"
#include "fsl_common.h"
#include "freemaster.h"
#include "usb_device_config.h"
#include "freemaster_usb.h"
#include "Driver_I2C.h"
#include "issdk_hal.h"
#include "gpio_driver.h"
#include "fxls896x_drv.h"
#include "systick_utils.h"
Go to the source code of this file.
Data Structures | |
struct | fxls896x_allregs_t |
This structure defines the fxls896x all registers metadata. More... | |
struct | fxls896x_offset_noise_t |
This structure defines the fxls896x offset and noise calculation parameters. More... | |
struct | fxls896x_selftest_t |
This structure defines variables to compute self-test output change (STOC) and self-test offset (STOF). More... | |
struct | sensor_data |
This structure defines the fxls8962 raw data buffer. More... | |
union | rawdata |
Macros | |
#define | FXLS896x_NUM_REGISTERS (FXLS896x_SELF_TEST_CONFIG2 + 1) |
#define | FF_A_FFMT_THS (0x08) /* FreeFall Threshold Value. */ |
#define | A_FFMT_COUNT (0x18) /* Freefall/motion debounce count value. */ |
#define | PL_COUNT (0x15) /* Pulse debounce count value. */ |
#define | ASLP_COUNTER (0x07) /* Auto Sleep after ~5s. */ |
#define | ACCEL_2G_SENS (0.000976) /* Sensitivity factor for 2G FS */ |
#define | ACCEL_4G_SENS (0.001953) /* Sensitivity factor for 4G FS */ |
#define | ACCEL_8G_SENS (0.003906) /* Sensitivity factor for 8G FS */ |
#define | ACCEL_16G_SENS (0.007813) /* Sensitivity factor for 16G FS */ |
#define | N (100U) /* Number of samples used to measure offset/noise */ |
#define | RAW_ACCEL_DATA_SIZE (6U) /* Accel Data Size */ |
#define | MAX8BITSTORAGE (255U) |
#define | FXLS896x_DATA_SIZE 6 |
Typedefs | |
typedef union rawdata | RAW_DATA |
typedef enum fxls896x_operation_type | fxls896x_operation_type_t |
This structure defines the fxls896x host operation type. More... | |
Enumerations | |
enum | fxls896x_operation_type { FXLS896x_REG_WRITE = 1U, FXLS896x_REG_READ = 2U, FXLS896x_ALLREG_READ = 3U, FXLS896x_ACCEL_CONFIG_END, FXLS896x_REG_WRITE = 1U, FXLS896x_REG_READ = 2U, FXLS896x_ALLREG_READ = 3U, FXLS896x_ACCEL_CONFIG_END, FXLS896x_REG_WRITE = 1U, FXLS896x_REG_READ = 2U, FXLS896x_ALLREG_READ = 3U, FXLS896x_ACCEL_CONFIG_END } |
This structure defines the fxls896x host operation type. More... | |
Functions | |
void | fxls896x_isr_callback (void *pUserData) |
ISR for FXLS896x interrupt source event. More... | |
int32_t | apply_register_write (fxls896x_i2c_sensorhandle_t fxls896xDriver, uint8_t offset, uint8_t value) |
Function to apply FXLS896x register write operation. More... | |
int32_t | apply_register_read (fxls896x_i2c_sensorhandle_t fxls896xDriver, uint8_t offset, uint8_t *value) |
Function to apply FXLS896x register read operation. More... | |
int32_t | apply_register_readall (fxls896x_i2c_sensorhandle_t fxls896xDriver) |
Function to apply FXLS896x register read-all operation. More... | |
int32_t | update_dropdown_selection (fxls896x_allregs_t *registers, uint8_t caller) |
Function to update dropdown selection. More... | |
void | offset_noise_init (fxls896x_offset_noise_t *offnoiseptr) |
Function to initialize offset noise measurement. More... | |
void | accel_off_noise (fxls896x_acceldata_t *rawData, fxls896x_offset_noise_t *offnoiseptr, float sens) |
Function to measure accelerometer offset noise. More... | |
void | selftest_init (fxls896x_selftest_t *selftest) |
Function to initialize FXLS896x self test metadata. More... | |
int32_t | perform_selftest (fxls896x_i2c_sensorhandle_t fxls896xDriver, fxls896x_selftest_t *selftest) |
Function to perform FXLS896x self test. More... | |
void | FRM_Recorder_Init () |
FMSTR_TSA_TABLE_BEGIN (main_table) | |
Target Side Addressable (TSA) table created for this application. More... | |
int | main (void) |
Main function. More... | |
Variables | |
const registerwritelist_t | cFxls896xConfigNormal [] |
Defines the register write list to configure FXLS896x in Interrupt mode. More... | |
const registerwritelist_t | cFxls896xSTXP [] |
Register settings for Self-Test in X Axis (Positive polarity). More... | |
const registerwritelist_t | cFxls896xSTXN [] |
Register settings for Self-Test in X Axis (Negative polarity). More... | |
const registerwritelist_t | cFxls896xSTYP [] |
Register settings for Self-Test in Y Axis (Positive polarity). More... | |
const registerwritelist_t | cFxls896xSTYN [] |
Register settings for Self-Test in Y Axis (Negative polarity). More... | |
const registerwritelist_t | cFxls896xSTZP [] |
Register settings for Self-Test in Z Axis (Positive polarity). More... | |
const registerwritelist_t | cFxls896xSTZN [] |
Register settings for Self-Test in Z Axis (Negative polarity). More... | |
const registerreadlist_t | cFxls896xOutputNormal [] |
Address of Raw Accel Data in Normal Mode. More... | |
const registerreadlist_t | cFXLS896x_whoami [] |
const registerreadlist_t | cFXLS896x_int_src [] |
Prepare the register read for INT Status Register. More... | |
const registerreadlist_t | cFXLS896x_fs_src [] |
Prepare the register read for FullScale range Register. More... | |
const registerreadlist_t | FXLS896x_ALL_REG_READ [] |
FXLS896x register list to read all registers. More... | |
fxls896x_acceldata_t | rawData |
fxls896x_allregs_t | registers |
fxls896x_offset_noise_t | offnoise_data |
fxls896x_selftest_t | selftest |
uint8_t | prev_toggle = 1 |
volatile bool | bFxls896xIntFlag = false |
FMSTR_REC_BUFF | recBuffCfg |
FMSTR_REC_VAR | recVar |
FMSTR_REC_CFG | recCfg |
int32_t | status |
int32_t | gSystick |
uint8_t | axis =0 |
int16_t | XSTP [2] ={0,0} |
int16_t | YSTP [2] ={0,0} |
int16_t | ZSTP [2] ={0,0} |
int16_t | XSTN [2] ={0,0} |
int16_t | YSTN [2] ={0,0} |
int16_t | ZSTN [2] ={0,0} |
The fxls896xaf_freemaster_usb_demo.c file implements FreeMASTER demo using the ISSDK FXLS896xAF sensor driver example demonstration with interrupt mode.
Definition in file fxls896xaf_freemaster_usb_demo.c.
#define A_FFMT_COUNT (0x18) /* Freefall/motion debounce count value. */ |
Definition at line 45 of file fxls896xaf_freemaster_usb_demo.c.
#define ACCEL_16G_SENS (0.007813) /* Sensitivity factor for 16G FS */ |
Definition at line 51 of file fxls896xaf_freemaster_usb_demo.c.
#define ACCEL_2G_SENS (0.000976) /* Sensitivity factor for 2G FS */ |
Definition at line 48 of file fxls896xaf_freemaster_usb_demo.c.
#define ACCEL_4G_SENS (0.001953) /* Sensitivity factor for 4G FS */ |
Definition at line 49 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by main().
#define ACCEL_8G_SENS (0.003906) /* Sensitivity factor for 8G FS */ |
Definition at line 50 of file fxls896xaf_freemaster_usb_demo.c.
#define ASLP_COUNTER (0x07) /* Auto Sleep after ~5s. */ |
Definition at line 47 of file fxls896xaf_freemaster_usb_demo.c.
#define FF_A_FFMT_THS (0x08) /* FreeFall Threshold Value. */ |
Definition at line 44 of file fxls896xaf_freemaster_usb_demo.c.
#define FXLS896x_DATA_SIZE 6 |
Definition at line 55 of file fxls896xaf_freemaster_usb_demo.c.
#define FXLS896x_NUM_REGISTERS (FXLS896x_SELF_TEST_CONFIG2 + 1) |
Definition at line 43 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by apply_register_read(), and apply_register_write().
#define MAX8BITSTORAGE (255U) |
Definition at line 54 of file fxls896xaf_freemaster_usb_demo.c.
#define N (100U) /* Number of samples used to measure offset/noise */ |
Definition at line 52 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by accel_off_noise().
#define PL_COUNT (0x15) /* Pulse debounce count value. */ |
Definition at line 46 of file fxls896xaf_freemaster_usb_demo.c.
#define RAW_ACCEL_DATA_SIZE (6U) /* Accel Data Size */ |
Definition at line 53 of file fxls896xaf_freemaster_usb_demo.c.
typedef enum fxls896x_operation_type fxls896x_operation_type_t |
This structure defines the fxls896x host operation type.
This structure defines the fxls896x host operation type.
Definition at line 220 of file fxls896xaf_freemaster_usb_demo.c.
void accel_off_noise | ( | fxls896x_acceldata_t * | rawData, |
fxls896x_offset_noise_t * | offnoiseptr, | ||
float | sens | ||
) |
Function to measure accelerometer offset noise.
This function measures accelerometer offset noise.
[in] | fxls896x_acceldata_t | *rawData, pointer to FXLS896x rawdata metadata. |
Definition at line 828 of file fxls896xaf_freemaster_usb_demo.c.
References fxls896x_acceldata_t::accel, fxls896x_offset_noise_t::complete_accel_offnoise, N, offset_noise_init(), fxls896x_offset_noise_t::offx, fxls896x_offset_noise_t::offy, fxls896x_offset_noise_t::offz, fxls896x_offset_noise_t::rmsx, fxls896x_offset_noise_t::rmsy, and fxls896x_offset_noise_t::rmsz.
int32_t apply_register_read | ( | fxls896x_i2c_sensorhandle_t | fxls896xDriver, |
uint8_t | offset, | ||
uint8_t * | value | ||
) |
Function to apply FXLS896x register read operation.
Service register read trigger from Host.
This function apply FXLS896x register read based on read trigger from host.
[in] | fxls896x_i2c_sensorhandle_t | fxls896xDriver, FXLS896x sensor I2C handle. |
[in] | uint8_t | offset, the address of the register to read from. |
Set register offset with provided value
Definition at line 705 of file fxls896xaf_freemaster_usb_demo.c.
References __END_READ_DATA__, FXLS896x_I2C_ReadData(), FXLS896x_NUM_REGISTERS, int32_t(), registerreadlist_t::readFrom, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, SENSOR_ERROR_WRITE, and status.
int32_t apply_register_readall | ( | fxls896x_i2c_sensorhandle_t | fxls896xDriver | ) |
Function to apply FXLS896x register read-all operation.
Service register read all trigger from Host.
This function apply FXLS896x all-registers read based on read-all trigger from host.
[in] | fxls896x_i2c_sensorhandle_t | fxls896xDriver, FXLS896x sensor I2C handle. |
Set register offset with provided value
Definition at line 730 of file fxls896xaf_freemaster_usb_demo.c.
References __END_READ_DATA__, FXLS896x_I2C_ReadData(), FXLS896x_INT_STATUS, FXLS896x_SELF_TEST_CONFIG2, int32_t(), fxls896x_allregs_t::readall_value, registerreadlist_t::readFrom, SENSOR_ERROR_NONE, SENSOR_ERROR_READ, and status.
int32_t apply_register_write | ( | fxls896x_i2c_sensorhandle_t | fxls896xDriver, |
uint8_t | offset, | ||
uint8_t | value | ||
) |
Function to apply FXLS896x register write operation.
Service register write trigger from Host.
This function apply FXLS896x register write based on write trigger from host.
[in] | fxls896x_i2c_sensorhandle_t | fxls896xDriver, FXLS896x sensor I2C handle. |
[in] | uint8_t | offset, the address of the register to start writing from. |
[in] | uint8_t | value, value to write on register offset. |
Set register offset with provided value
Definition at line 679 of file fxls896xaf_freemaster_usb_demo.c.
References __END_WRITE_DATA__, FXLS896x_I2C_Configure(), FXLS896x_NUM_REGISTERS, int32_t(), SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, SENSOR_ERROR_WRITE, and status.
FMSTR_TSA_TABLE_BEGIN | ( | main_table | ) |
Target Side Addressable (TSA) table created for this application.
FreeMASTER recorder initialization
Definition at line 333 of file fxls896xaf_freemaster_usb_demo.c.
References recBuffCfg.
void FRM_Recorder_Init | ( | ) |
void fxls896x_isr_callback | ( | void * | pUserData | ) |
ISR for FXLS896x interrupt source event.
This function implements ISR for FXLS896x INT source.
[in] | void | *. |
Set flag to indicate Sensor has signalled data ready.
Definition at line 324 of file fxls896xaf_freemaster_usb_demo.c.
References bFxls896xIntFlag.
Referenced by main().
int main | ( | void | ) |
Main function.
Initialize the MCU hardware.
Initialize FXLS896x_INT1 pin used by FRDM board
Initialize RGB LED pin used by FRDM board
FreeMASTER communication layer initialization
Initialize the I2C driver.
Set the I2C Power mode.
Set the I2C bus speed.
Initialize FXLS896x sensor driver.
Set the task to be executed while waiting for I2C transactions to complete.
Configure the FXLS896x sensor.
FreeMASTER Driver Initialization
FreeMASTER Recorder Initialization
Open FreeMASTER Pipe and get a Pipe handle
Initialize trigger flags
Calling Recorder#0 in execution loop for generic high-speed variables sampling.
FreeMASTER host communication polling mode
Check for any write register trigger from Host
Apply Register Write
Update drop down menu selection based on updated register write
Check for any read register trigger from Host
Apply Register Write
Update drop down menu selection based on updated register read
Check for any read all register trigger from Host
Apply Register Write
Update drop down menu selection based on updated all register read
Wait for data ready interrupt from the FXLS896x.
Clear the data ready flag, it will be set again by the ISR.
Calling Recorder#1 for sampling sensor data when we get sensor data ready interrupt based on ODR.
Read new raw sensor data from the FXLS896x.
Increment data ready counter and check for rollover
Convert the raw sensor data to signed 16-bit container for display to the debug port.
Add data log into Pipe TX
Check the FS and apply sensitivity
Convert raw values to Gs
Call offset and noise calculation function for FXLS896x
Call self-test function
Re-Configure the FXLS896x sensor to default configuration
Definition at line 414 of file fxls896xaf_freemaster_usb_demo.c.
References ACCEL_4G_SENS, BOARD_BootClockRUN, BOARD_InitDebugConsole(), BOARD_InitPins(), BOARD_SystickEnable(), Driver_GPIO_KSDK, FRM_Recorder_Init(), FXLS896x_I2C_ADDR, FXLS896x_I2C_Configure(), FXLS896x_I2C_Initialize(), FXLS896x_I2C_SetIdleTask(), FXLS896x_INT1, fxls896x_isr_callback(), fxls896xDriver, GPIO_DIRECTION_IN, GPIO_DIRECTION_OUT, GREEN_LED, I2C_S_DEVICE_INDEX, I2C_S_DRIVER, I2C_S_SIGNAL_EVENT, I2Cdrv, int32_t(), pGpioDriver, GENERIC_DRIVER_GPIO::pin_init, SENSOR_ERROR_NONE, SMC, SMC_SetPowerModeVlpr(), and status.
void offset_noise_init | ( | fxls896x_offset_noise_t * | offnoiseptr | ) |
Function to initialize offset noise measurement.
Initialize Offset-Noise Variables.
This function initializes offset noise measurement metadata.
Definition at line 815 of file fxls896xaf_freemaster_usb_demo.c.
References fxls896x_offset_noise_t::complete_accel_offnoise, fxls896x_offset_noise_t::offx, fxls896x_offset_noise_t::offy, fxls896x_offset_noise_t::offz, fxls896x_offset_noise_t::rmsx, fxls896x_offset_noise_t::rmsy, and fxls896x_offset_noise_t::rmsz.
Referenced by accel_off_noise().
int32_t perform_selftest | ( | fxls896x_i2c_sensorhandle_t | fxls896xDriver, |
fxls896x_selftest_t * | selftest | ||
) |
Function to perform FXLS896x self test.
This function performs FXLS896x self test.
[in] | fxls896x_i2c_sensorhandle_t | fxls896xDriver, FXLS896x sensor I2C handle. |
Set device to Standby mode.
Read new raw sensor data from the FXLS896x.
Definition at line 926 of file fxls896xaf_freemaster_usb_demo.c.
References axis, bFxls896xIntFlag, BOARD_DELAY_ms(), rawdata::byte_data, fxls896x_selftest_t::complete_selftest, rawdata::dat, fxls896x_i2c_sensorhandle_t::deviceInfo, FXLS896x_I2C_ADDR, FXLS896x_I2C_Configure(), FXLS896x_I2C_ReadData(), FXLS896x_SENS_CONFIG1, I2C_S_DRIVER, int32_t(), Register_I2C_Write(), selftest_init(), SENSOR_ERROR_NONE, SENSOR_ERROR_WRITE, status, fxls896x_selftest_t::x_stoc, fxls896x_selftest_t::x_stof, sensor_data::xdata, XSTN, XSTP, fxls896x_selftest_t::y_stoc, fxls896x_selftest_t::y_stof, sensor_data::ydata, YSTN, YSTP, fxls896x_selftest_t::z_stoc, fxls896x_selftest_t::z_stof, sensor_data::zdata, ZSTN, and ZSTP.
void selftest_init | ( | fxls896x_selftest_t * | selftest | ) |
Function to initialize FXLS896x self test metadata.
Initialize Offset-Noise Variables.
This function initializes FXLS896x self test metadata.
Definition at line 914 of file fxls896xaf_freemaster_usb_demo.c.
References fxls896x_selftest_t::complete_selftest, fxls896x_selftest_t::x_stoc, fxls896x_selftest_t::x_stof, fxls896x_selftest_t::y_stoc, fxls896x_selftest_t::y_stof, fxls896x_selftest_t::z_stoc, and fxls896x_selftest_t::z_stof.
Referenced by perform_selftest().
int32_t update_dropdown_selection | ( | fxls896x_allregs_t * | registers, |
uint8_t | caller | ||
) |
Function to update dropdown selection.
Update drop down selection values based on register write, read or readall.
This function updates the dropdown selection values in real-time based on read/write/read-all triggers.
Update drop down option based on updated read value
Update drop down option based on updated read value
Update drop down option based on updated read values
Definition at line 753 of file fxls896xaf_freemaster_usb_demo.c.
References fxls896x_allregs_t::fs_value, FXLS896x_ALLREG_READ, FXLS896x_REG_READ, FXLS896x_REG_WRITE, FXLS896x_SENS_CONFIG1, FXLS896x_SENS_CONFIG2, FXLS896x_SENS_CONFIG3, int32_t(), fxls896x_allregs_t::mods_value, fxls896x_allregs_t::odr_value, fxls896x_allregs_t::offset, fxls896x_allregs_t::read_offset, fxls896x_allregs_t::read_value, fxls896x_allregs_t::reg_addr, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, status, and fxls896x_allregs_t::value.
uint8_t axis =0 |
Definition at line 249 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().
volatile bool bFxls896xIntFlag = false |
Definition at line 238 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by fxls896x_isr_callback(), and perform_selftest().
const registerreadlist_t cFXLS896x_fs_src[] |
Prepare the register read for FullScale range Register.
Definition at line 142 of file fxls896xaf_freemaster_usb_demo.c.
const registerreadlist_t cFXLS896x_int_src[] |
Prepare the register read for INT Status Register.
Definition at line 138 of file fxls896xaf_freemaster_usb_demo.c.
const registerreadlist_t cFXLS896x_whoami[] |
Definition at line 134 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xConfigNormal[] |
Defines the register write list to configure FXLS896x in Interrupt mode.
Definition at line 60 of file fxls896xaf_freemaster_usb_demo.c.
const registerreadlist_t cFxls896xOutputNormal[] |
Address of Raw Accel Data in Normal Mode.
Definition at line 131 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xSTXN[] |
Register settings for Self-Test in X Axis (Negative polarity).
Definition at line 91 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xSTXP[] |
Register settings for Self-Test in X Axis (Positive polarity).
Definition at line 83 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xSTYN[] |
Register settings for Self-Test in Y Axis (Negative polarity).
Definition at line 107 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xSTYP[] |
Register settings for Self-Test in Y Axis (Positive polarity).
Definition at line 99 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xSTZN[] |
Register settings for Self-Test in Z Axis (Negative polarity).
Definition at line 123 of file fxls896xaf_freemaster_usb_demo.c.
const registerwritelist_t cFxls896xSTZP[] |
Register settings for Self-Test in Z Axis (Positive polarity).
Definition at line 115 of file fxls896xaf_freemaster_usb_demo.c.
const registerreadlist_t FXLS896x_ALL_REG_READ[] |
FXLS896x register list to read all registers.
Definition at line 146 of file fxls896xaf_freemaster_usb_demo.c.
int32_t gSystick |
Definition at line 245 of file fxls896xaf_freemaster_usb_demo.c.
fxls896x_offset_noise_t offnoise_data |
Definition at line 235 of file fxls896xaf_freemaster_usb_demo.c.
uint8_t prev_toggle = 1 |
Definition at line 237 of file fxls896xaf_freemaster_usb_demo.c.
fxls896x_acceldata_t rawData |
Definition at line 233 of file fxls896xaf_freemaster_usb_demo.c.
FMSTR_REC_BUFF recBuffCfg |
Definition at line 241 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by FMSTR_TSA_TABLE_BEGIN().
FMSTR_REC_CFG recCfg |
Definition at line 243 of file fxls896xaf_freemaster_usb_demo.c.
FMSTR_REC_VAR recVar |
Definition at line 242 of file fxls896xaf_freemaster_usb_demo.c.
fxls896x_allregs_t registers |
Definition at line 234 of file fxls896xaf_freemaster_usb_demo.c.
fxls896x_selftest_t selftest |
Definition at line 236 of file fxls896xaf_freemaster_usb_demo.c.
int32_t status |
Definition at line 245 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by apply_register_read(), apply_register_readall(), apply_register_write(), main(), perform_selftest(), and update_dropdown_selection().
int16_t XSTN[2] ={0,0} |
Definition at line 251 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().
int16_t XSTP[2] ={0,0} |
Definition at line 251 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().
int16_t YSTN[2] ={0,0} |
Definition at line 251 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().
int16_t YSTP[2] ={0,0} |
Definition at line 251 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().
int16_t ZSTN[2] ={0,0} |
Definition at line 251 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().
int16_t ZSTP[2] ={0,0} |
Definition at line 251 of file fxls896xaf_freemaster_usb_demo.c.
Referenced by perform_selftest().