![]() |
ISSDK
1.8
IoT Sensing Software Development Kit
|
The mpl3115_demo.c file implements the ISSDK MPL3115 sensor demo example demonstration with One-Shot 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 "mpl3115_drv.h"
#include "host_io_uart.h"
#include "systick_utils.h"
#include "auto_detection_service.h"
Go to the source code of this file.
Macros | |
#define | MPL3115_T_ON_MAX 1000 /* MAX Turn On Time after RST */ |
#define | MPL3115_DATA_SIZE 5 /* 3 byte Pressure and 2 byte Temperature. */ |
#define | MPL3115_STREAM_DATA_SIZE 10 /* 6 byte Data */ |
#define | LED_TOGGLE_RATE 100 /* Toggle LED after every 100 samples. */ |
#define | APPLICATION_NAME "Digital Pressure Altimeter Demo (MPL3115)" |
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... | |
Functions | |
void | mpl3115_int_data_ready_callback (void *pUserData) |
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 | cMpl3115ConfigINT [] |
Register settings for Interrupt (non buffered) Enablement with ONe-Shot Mode. More... | |
const registerwritelist_t | cMpl3115SetOST [] |
Register settings for Triggring One-Shot Sampling. More... | |
const registerreadlist_t | cMpl3115OutputNormal [] |
Address and size of Raw Pressure+Temperature Data in Normal Mode. More... | |
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 | bMpl3115DataReady = false |
volatile bool | bMpl3115Ready = false |
uint8_t | gStreamID |
int32_t | gSystick |
GENERIC_DRIVER_GPIO * | pGpioDriver = &Driver_GPIO_KSDK |
The mpl3115_demo.c file implements the ISSDK MPL3115 sensor demo example demonstration with One-Shot mode.
Definition in file mpl3115_demo.c.
#define APPLICATION_NAME "Digital Pressure Altimeter Demo (MPL3115)" |
Unique Name for this application which should match the target GUI pkg name.
Definition at line 47 of file mpl3115_demo.c.
Referenced by main().
#define APPLICATION_VERSION "2.5" |
Version to distinguish between instances the same application based on target Shield and updates.
Definition at line 49 of file mpl3115_demo.c.
Referenced by main().
#define LED_TOGGLE_RATE 100 /* Toggle LED after every 100 samples. */ |
Definition at line 44 of file mpl3115_demo.c.
Referenced by main().
Definition at line 42 of file mpl3115_demo.c.
Referenced by main().
#define MPL3115_STREAM_DATA_SIZE 10 /* 6 byte Data */ |
Definition at line 43 of file mpl3115_demo.c.
Referenced by main().
#define MPL3115_T_ON_MAX 1000 /* MAX Turn On Time after RST */ |
Definition at line 41 of file mpl3115_demo.c.
int main | ( | void | ) |
Main function.
Initialize the MCU hardware.
Initialize INT1 MPL3115 pin used by FRDM board
Initialize GREEN 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 the MPL3115 sensor driver.
Set the task to be executed while waiting for I2C transactions to complete.
We do not call MPL3115_I2C_Configure() in this case as we are going to read samples on demand. We explicitly only enable ISR settings.
Initialize streaming and assign a Stream ID.
Populate streaming header.
Clear the data ready flag, it will be set again by the ODR CB.
Read raw sensor data from the MPL3115.
Convert the raw sensor data to signed 32-bit and 16-bit containers for display to the debug port.
Definition at line 187 of file mpl3115_demo.c.
References ADS_MAX_STRING_LENGTH, APPLICATION_NAME, APPLICATION_VERSION, bMpl3115DataReady, bMpl3115Ready, BOARD_BootClockRUN, BOARD_DEBUG_UART_BAUDRATE, BOARD_RunADS(), BOARD_SystickElapsedTime_us(), BOARD_SystickEnable(), boardString, bStreamingEnabled, GENERIC_DRIVER_GPIO::clr_pin, data, mpl3115_i2c_sensorhandle_t::deviceInfo, embAppName, GPIO_DIRECTION_IN, GPIO_DIRECTION_OUT, GREEN_LED, gStreamID, gSystick, 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(), LED_TOGGLE_RATE, MPL3115_DATA_SIZE, MPL3115_I2C_ADDR, MPL3115_I2C_Initialize(), MPL3115_I2C_ReadData(), MPL3115_I2C_SetIdleTask(), MPL3115_INT1, mpl3115_int_data_ready_callback(), MPL3115_STREAM_DATA_SIZE, MPL3115_WHOAMI_VALUE, mpl3115_i2c_sensorhandle_t::pCommDrv, GENERIC_DRIVER_GPIO::pin_init, mpl3115_pressuredata_t::pressure, process_host_command(), rawData, SENSOR_ERROR_NONE, Sensor_I2C_Write(), SHIELD_NAME, shieldString, mpl3115_i2c_sensorhandle_t::slaveAddress, SMC, SMC_SetPowerModeVlpr(), SMC_SetPowerModeWait(), status, STREAMING_HEADER_LEN, streamingPacket, mpl3115_pressuredata_t::temperature, mpl3115_pressuredata_t::timestamp, fxos8700_accelmagdata_t::timestamp, and GENERIC_DRIVER_GPIO::toggle_pin.
void mpl3115_int_data_ready_callback | ( | void * | pUserData | ) |
Set flag to indicate Sensor has signalled data ready.
Definition at line 98 of file mpl3115_demo.c.
References bMpl3115DataReady.
Referenced by main().
bool process_host_command | ( | uint8_t | tag, |
uint8_t * | hostCommand, | ||
uint8_t * | hostResponse, | ||
size_t * | hostMsgSize, | ||
size_t | respBufferSize | ||
) |
Definition at line 104 of file mpl3115_demo.c.
References bMpl3115Ready, BOARD_SystickStart(), boardString, bStreamingEnabled, GENERIC_DRIVER_GPIO::clr_pin, embAppName, GREEN_LED, gStreamID, gSystick, HOST_CMD_START, HOST_CMD_STOP, HOST_MSG_CMD_ACT_OFFSET, HOST_MSG_LEN_LSB_OFFSET, HOST_PRO_CMD_W_CFG_TAG, HOST_PRO_INT_CMD_TAG, HOST_PRO_INT_DEV_TAG, and shieldString.
Referenced by main().
volatile bool bMpl3115DataReady = false |
Definition at line 89 of file mpl3115_demo.c.
Referenced by main(), and mpl3115_int_data_ready_callback().
volatile bool bMpl3115Ready = false |
Definition at line 89 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().
char boardString[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 87 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().
volatile bool bStreamingEnabled = false |
Definition at line 89 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().
const registerwritelist_t cMpl3115ConfigINT[] |
Register settings for Interrupt (non buffered) Enablement with ONe-Shot Mode.
Definition at line 55 of file mpl3115_demo.c.
const registerreadlist_t cMpl3115OutputNormal[] |
Address and size of Raw Pressure+Temperature Data in Normal Mode.
Definition at line 81 of file mpl3115_demo.c.
const registerwritelist_t cMpl3115SetOST[] |
Register settings for Triggring One-Shot Sampling.
Definition at line 75 of file mpl3115_demo.c.
char embAppName[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 88 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().
uint8_t gStreamID |
Definition at line 90 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().
int32_t gSystick |
Definition at line 91 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().
GENERIC_DRIVER_GPIO* pGpioDriver = &Driver_GPIO_KSDK |
Definition at line 92 of file mpl3115_demo.c.
char shieldString[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 87 of file mpl3115_demo.c.
Referenced by main(), and process_host_command().