ISSDK  1.8
IoT Sensing Software Development Kit
Data Structures | Macros | Functions | Variables
fxas21002_poll_demo.c File Reference

The fxas21002_poll_demo.c file implements the ISSDK FXAS21002 sensor demo example demonstration with Poll mode. More...

#include "board.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "Driver_I2C.h"
#include "Driver_USART.h"
#include "issdk_hal.h"
#include "gpio_driver.h"
#include "host_io_uart.h"
#include "systick_utils.h"
#include "fxas21002_drv.h"
#include "auto_detection_service.h"
Include dependency graph for fxas21002_poll_demo.c:

Go to the source code of this file.

Data Structures

struct  fxas21002_gyrodataUser_t
 This structure defines the fxas21002 raw data buffer. More...
 

Macros

#define FXAS21002_STREAM_DATA_SIZE   12
 
#define APPLICATION_NAME   "FXAS21002 Gyroscope Demo"
 Unique Name for this application which should match the target GUI pkg name. More...
 
#define APPLICATION_VERSION   "2.5"
 Version to distinguish between instances the same application based on target Shield and updates. More...
 
#define SKIP_PACKET_COUNT   5
 

Functions

bool process_host_command (uint8_t tag, uint8_t *hostCommand, uint8_t *hostResponse, size_t *hostMsgSize, size_t respBufferSize)
 
int main (void)
 Main function. More...
 

Variables

const registerwritelist_t fxas21002_Config_Isr []
 
const registerreadlist_t fxas21002_Status [] = {{.readFrom = FXAS21002_STATUS, .numBytes = 1}, __END_READ_DATA__}
 
const registerreadlist_t fxas21002_Output_Values []
 
const registerreadlist_t fxas21002_Reg []
 
const registerreadlist_t fxas21002_Temp []
 
char boardString [ADS_MAX_STRING_LENGTH] = {0}
 
char shieldString [ADS_MAX_STRING_LENGTH] = {0}
 
char embAppName [ADS_MAX_STRING_LENGTH] = {0}
 
volatile bool bStreamingEnabled = false
 
volatile bool bFxas21002Ready = false
 
volatile uint8_t bSkipPacket = 0
 
uint8_t gStreamID
 
int32_t gSystick
 
GENERIC_DRIVER_GPIOpGpioDriver = &Driver_GPIO_KSDK
 

Detailed Description

The fxas21002_poll_demo.c file implements the ISSDK FXAS21002 sensor demo example demonstration with Poll mode.

Definition in file fxas21002_poll_demo.c.

Macro Definition Documentation

◆ APPLICATION_NAME

#define APPLICATION_NAME   "FXAS21002 Gyroscope Demo"

Unique Name for this application which should match the target GUI pkg name.

Definition at line 44 of file fxas21002_poll_demo.c.

Referenced by main().

◆ APPLICATION_VERSION

#define APPLICATION_VERSION   "2.5"

Version to distinguish between instances the same application based on target Shield and updates.

Definition at line 46 of file fxas21002_poll_demo.c.

Referenced by main().

◆ FXAS21002_STREAM_DATA_SIZE

#define FXAS21002_STREAM_DATA_SIZE   12

Definition at line 41 of file fxas21002_poll_demo.c.

Referenced by main().

◆ SKIP_PACKET_COUNT

#define SKIP_PACKET_COUNT   5

Definition at line 48 of file fxas21002_poll_demo.c.

Referenced by process_host_command().

Function Documentation

◆ main()

int main ( void  )

Main function.

Initialize the MCU hardware.

Initialize RGB LED pin used by FRDM board

Initialize the I2C driver.

Set the I2C Power mode.

Set the I2C bus speed.

Initialize the UART driver.

Set the UART Power mode.

Set UART Baud Rate.

Initialize FXAS21002 sensor driver.

Set the task to be executed while waiting for SPI transactions to complete.

Configure the FXAS21002 sensor.

Initialize streaming and assign a Stream ID.

Populate streaming header.

Keep checking the Status FLAG for completion.

Read new raw sensor data from the FXAS21002.

Convert the raw sensor data to signed 16-bit container for display to the debug port.

Definition at line 185 of file fxas21002_poll_demo.c.

References ADS_MAX_STRING_LENGTH, APPLICATION_NAME, APPLICATION_VERSION, bFxas21002Ready, BOARD_BootClockRUN, BOARD_DEBUG_UART_BAUDRATE, BOARD_RunADS(), BOARD_SystickElapsedTime_us(), BOARD_SystickEnable(), boardString, bSkipPacket, bStreamingEnabled, GENERIC_DRIVER_GPIO::clr_pin, data, fxas21002_i2c_sensorhandle_t::deviceInfo, embAppName, FXAS21002_DR_STATUS_ZYXDR_MASK, FXAS21002_GYRO_DATA_SIZE, FXAS21002_I2C_ADDR, FXAS21002_I2C_Configure(), FXAS21002_I2C_Initialize(), FXAS21002_I2C_ReadData(), FXAS21002_I2C_SetIdleTask(), FXAS21002_STREAM_DATA_SIZE, FXAS21002_WHO_AM_I_WHOAMI_PROD_VALUE, GPIO_DIRECTION_OUT, GREEN_LED, gStreamID, gSystick, fxas21002_gyrodataUser_t::gyro, HOST_FORMAT_HDLC, Host_IO_Add_ISO_Header(), Host_IO_Init(), Host_IO_Receive(), Host_IO_Send(), HOST_S_DRIVER, HOST_S_SIGNAL_EVENT, I2C_S_DEVICE_INDEX, I2C_S_DRIVER, I2C_S_SIGNAL_EVENT, int32_t(), fxas21002_gyrodataUser_t::intsrc, fxas21002_i2c_sensorhandle_t::pCommDrv, GENERIC_DRIVER_GPIO::pin_init, process_host_command(), rawData, SENSOR_ERROR_NONE, SHIELD_NAME, shieldString, SMC, SMC_SetPowerModeVlpr(), SMC_SetPowerModeWait(), status, STREAMING_HEADER_LEN, streamingPacket, fxas21002_gyrodataUser_t::temp, fxas21002_gyrodataUser_t::timestamp, fxos8700_accelmagdata_t::timestamp, and GENERIC_DRIVER_GPIO::toggle_pin.

Here is the call graph for this function:

◆ process_host_command()

bool process_host_command ( uint8_t  tag,
uint8_t *  hostCommand,
uint8_t *  hostResponse,
size_t *  hostMsgSize,
size_t  respBufferSize 
)

Variable Documentation

◆ bFxas21002Ready

volatile bool bFxas21002Ready = false

Definition at line 91 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ boardString

char boardString[ADS_MAX_STRING_LENGTH] = {0}

Definition at line 89 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ bSkipPacket

volatile uint8_t bSkipPacket = 0

Definition at line 92 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ bStreamingEnabled

volatile bool bStreamingEnabled = false

Definition at line 91 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ embAppName

char embAppName[ADS_MAX_STRING_LENGTH] = {0}

Definition at line 90 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ fxas21002_Config_Isr

const registerwritelist_t fxas21002_Config_Isr[]
Initial value:

Prepare the register write list to configure FXAS21002 in non-FIFO mode.

Definition at line 63 of file fxas21002_poll_demo.c.

◆ fxas21002_Output_Values

const registerreadlist_t fxas21002_Output_Values[]
Initial value:
= {
#define __END_READ_DATA__
Definition: sensor_drv.h:51
#define FXAS21002_GYRO_DATA_SIZE
The size of the FXAS21002 gyro data.
Definition: fxas21002_drv.h:61

Prepare the register read list to read the raw gyro data from the FXAS21002.

Definition at line 77 of file fxas21002_poll_demo.c.

◆ fxas21002_Reg

const registerreadlist_t fxas21002_Reg[]
Initial value:
= {
{.readFrom = FXAS21002_INT_SRC_FLAG, .numBytes = 1}, __END_READ_DATA__}
#define __END_READ_DATA__
Definition: sensor_drv.h:51

Definition at line 80 of file fxas21002_poll_demo.c.

◆ fxas21002_Status

const registerreadlist_t fxas21002_Status[] = {{.readFrom = FXAS21002_STATUS, .numBytes = 1}, __END_READ_DATA__}

Prepare the register read list to read the status register from the FXAS21002.

Definition at line 74 of file fxas21002_poll_demo.c.

◆ fxas21002_Temp

const registerreadlist_t fxas21002_Temp[]
Initial value:
= {
{.readFrom = FXAS21002_TEMP, .numBytes = 1}, __END_READ_DATA__}
#define __END_READ_DATA__
Definition: sensor_drv.h:51

Definition at line 83 of file fxas21002_poll_demo.c.

◆ gStreamID

uint8_t gStreamID

Definition at line 93 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ gSystick

int32_t gSystick

Definition at line 94 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().

◆ pGpioDriver

Definition at line 95 of file fxas21002_poll_demo.c.

◆ shieldString

char shieldString[ADS_MAX_STRING_LENGTH] = {0}

Definition at line 89 of file fxas21002_poll_demo.c.

Referenced by main(), and process_host_command().