![]() |
ISSDK
1.7
IoT Sensing Software Development Kit
|
The mag3110_demo.c file implements the ISSDK MAG3110 sensor demo example demonstration with interrupt 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 "mag3110_drv.h"
#include "host_io_uart.h"
#include "systick_utils.h"
#include "auto_detection_service.h"
Go to the source code of this file.
Data Structures | |
struct | mag3110_magdataUser_t |
This structure defines the mag3110 data buffer. More... | |
Macros | |
#define | MAG3110_DATA_SIZE 6 /* 2 byte X,Y,Z Axis Data each. */ |
#define | MAG3110_STREAM_DATA_SIZE 12 /* 6 byte Data */ |
#define | APPLICATION_NAME "MAG3110 Magnetometer 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... | |
Functions | |
void | mag3110_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 | cMag3110ConfigNormal [] |
Register settings for Normal (non buffered) mode since Interrupt is enabled implicitly. More... | |
const registerreadlist_t | cMag3110OutputNormal [] |
Address and size of Raw Pressure+Temperature Data in Normal Mode. More... | |
const registerreadlist_t | cMag3110TempOut [] |
Address and size of 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 | bMag3110DataReady = false |
volatile bool | bMag3110Ready = false |
uint8_t | gStreamID |
int32_t | gSystick |
GENERIC_DRIVER_GPIO * | pGpioDriver = &Driver_GPIO_KSDK |
The mag3110_demo.c file implements the ISSDK MAG3110 sensor demo example demonstration with interrupt mode.
Definition in file mag3110_demo.c.
#define APPLICATION_NAME "MAG3110 Magnetometer Demo" |
Unique Name for this application which should match the target GUI pkg name.
Definition at line 71 of file mag3110_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 73 of file mag3110_demo.c.
Referenced by main().
#define MAG3110_DATA_SIZE 6 /* 2 byte X,Y,Z Axis Data each. */ |
Definition at line 67 of file mag3110_demo.c.
Referenced by main().
#define MAG3110_STREAM_DATA_SIZE 12 /* 6 byte Data */ |
Definition at line 68 of file mag3110_demo.c.
Referenced by main().
void mag3110_int_data_ready_callback | ( | void * | pUserData | ) |
Set flag to indicate Sensor has signalled data ready.
Definition at line 117 of file mag3110_demo.c.
References bMag3110DataReady.
Referenced by main().
int main | ( | void | ) |
Main function.
Initialize the MCU hardware.
Initialize INT1 MAG3110 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 MAG3110 sensor driver.
Set the task to be executed while waiting for I2C transactions to complete.
Configure the MAG3110 sensor driver.
Initialize streaming and assign a Stream ID.
Populate streaming header.
Clear the data ready flag, it will be set again by the ISR.
Read raw sensor data from the MAG3110.
Convert the raw sensor data to signed 32-bit and 16-bit containers for display to the debug port.
Read TEMP_SRC 0x0F from MAG3110.
Definition at line 206 of file mag3110_demo.c.
References ADS_MAX_STRING_LENGTH, APPLICATION_NAME, APPLICATION_VERSION, bMag3110DataReady, bMag3110Ready, BOARD_BootClockRUN, BOARD_DEBUG_UART_BAUDRATE, BOARD_RunADS(), BOARD_SystickElapsedTime_us(), BOARD_SystickEnable(), boardString, bStreamingEnabled, GENERIC_DRIVER_GPIO::clr_pin, data, mag3110_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(), mag3110_magdataUser_t::mag, MAG3110_CalibrateHardIronOffset(), MAG3110_DATA_SIZE, MAG3110_I2C_ADDR, MAG3110_I2C_Configure(), MAG3110_I2C_Initialize(), MAG3110_I2C_ReadData(), MAG3110_I2C_SetIdleTask(), MAG3110_INT1, mag3110_int_data_ready_callback(), MAG3110_STREAM_DATA_SIZE, MAG3110_WHOAMI_VALUE, mag3110_i2c_sensorhandle_t::pCommDrv, GENERIC_DRIVER_GPIO::pin_init, process_host_command(), rawData, SENSOR_ERROR_NONE, SHIELD_NAME, shieldString, SMC, SMC_SetPowerModeWait(), status, STREAMING_HEADER_LEN, streamingPacket, mag3110_magdataUser_t::temp, mag3110_magdataUser_t::timestamp, fxls8962_acceldataUser_t::timestamp, and GENERIC_DRIVER_GPIO::toggle_pin.
bool process_host_command | ( | uint8_t | tag, |
uint8_t * | hostCommand, | ||
uint8_t * | hostResponse, | ||
size_t * | hostMsgSize, | ||
size_t | respBufferSize | ||
) |
Definition at line 123 of file mag3110_demo.c.
References bMag3110Ready, 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 bMag3110DataReady = false |
Definition at line 108 of file mag3110_demo.c.
Referenced by mag3110_int_data_ready_callback(), and main().
volatile bool bMag3110Ready = false |
Definition at line 108 of file mag3110_demo.c.
Referenced by main(), and process_host_command().
char boardString[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 106 of file mag3110_demo.c.
Referenced by main(), and process_host_command().
volatile bool bStreamingEnabled = false |
Definition at line 108 of file mag3110_demo.c.
Referenced by main(), and process_host_command().
const registerwritelist_t cMag3110ConfigNormal[] |
Register settings for Normal (non buffered) mode since Interrupt is enabled implicitly.
Definition at line 87 of file mag3110_demo.c.
const registerreadlist_t cMag3110OutputNormal[] |
Address and size of Raw Pressure+Temperature Data in Normal Mode.
Definition at line 97 of file mag3110_demo.c.
const registerreadlist_t cMag3110TempOut[] |
Address and size of Temperature Data in Normal Mode.
Definition at line 100 of file mag3110_demo.c.
char embAppName[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 107 of file mag3110_demo.c.
Referenced by main(), and process_host_command().
uint8_t gStreamID |
Definition at line 109 of file mag3110_demo.c.
Referenced by main(), and process_host_command().
int32_t gSystick |
Definition at line 110 of file mag3110_demo.c.
Referenced by main(), and process_host_command().
GENERIC_DRIVER_GPIO* pGpioDriver = &Driver_GPIO_KSDK |
Definition at line 111 of file mag3110_demo.c.
char shieldString[ADS_MAX_STRING_LENGTH] = {0} |
Definition at line 106 of file mag3110_demo.c.
Referenced by main(), and process_host_command().