ISSDK  1.8
IoT Sensing Software Development Kit
Macros | Functions | Variables
mma865x_auto-wake-sleep.c File Reference

The mma865x_auto-wake-sleep.c file implements the ISSDK MMA865x sensor example demonstrating configuring MMA8652 Accel and enabling detection motion detection event. More...

#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "fsl_debug_console.h"
#include "Driver_I2C.h"
#include "issdk_hal.h"
#include "gpio_driver.h"
#include "mma865x_drv.h"
Include dependency graph for mma865x_auto-wake-sleep.c:

Go to the source code of this file.

Macros

#define MT_FFMT_THS   0x07 /* Motion Threshold Value. */
 
#define MT_FFMT_COUNT   0x00
 
#define ASLP_COUNT   0x14
 

Functions

void mma865x_isr_callback (void *pUserData)
 This is the Sensor ISR implementation. More...
 
int main (void)
 This is the The main function implementation. More...
 

Variables

const registerwritelist_t mma865x_autowake_motiondet_config []
 
const registerreadlist_t gMma8562ReadSysMode [] = {{.readFrom = MMA865x_SYSMOD, .numBytes = 1}, __END_READ_DATA__}
 Read register list for MMA8562 to read SysMode Register. More...
 
volatile bool gMma865xIntFlag = false
 

Detailed Description

The mma865x_auto-wake-sleep.c file implements the ISSDK MMA865x sensor example demonstrating configuring MMA8652 Accel and enabling detection motion detection event.

Definition in file mma865x_auto-wake-sleep.c.

Macro Definition Documentation

◆ ASLP_COUNT

#define ASLP_COUNT   0x14

Definition at line 40 of file mma865x_auto-wake-sleep.c.

◆ MT_FFMT_COUNT

#define MT_FFMT_COUNT   0x00

Definition at line 39 of file mma865x_auto-wake-sleep.c.

◆ MT_FFMT_THS

#define MT_FFMT_THS   0x07 /* Motion Threshold Value. */

Definition at line 38 of file mma865x_auto-wake-sleep.c.

Function Documentation

◆ main()

int main ( void  )

This is the The main function implementation.


This function invokes board initializes routines, then then brings up the sensor and finally enters an endless loop to continuously read available samples.

Parameters
[in]voidThis is no input parameter.
Returns
void There is no return value.
Constraints:
None

No

Initialize the MCU hardware.

Initialize MMA865x pin used by FRDM board

Initialize RGB LED pin used by FRDM board

Initialize RGB LED pin used by FRDM board

Initialize the I2C driver.

Set the I2C Power mode.

Set the I2C bus speed.

Initialize the MMA865x sensor driver.

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

Check whether Motion Interrupt has occurred and event status is Wake mode

Wake Mode Detected.

Clear the sensor event interrupt flag, it will be set again by the ISR.

Put MCU in low-power sleep.

Definition at line 102 of file mma865x_auto-wake-sleep.c.

References BOARD_BootClockRUN, BOARD_InitDebugConsole(), BOARD_InitPins(), GENERIC_DRIVER_GPIO::clr_pin, Driver_GPIO_KSDK, gMma865xIntFlag, GPIO_DIRECTION_IN, GPIO_DIRECTION_OUT, GREEN_LED, I2C_S_DEVICE_INDEX, I2C_S_DRIVER, I2C_S_SIGNAL_EVENT, I2Cdrv, int32_t(), MMA8652_I2C_ADDR, MMA8652_INT1, MMA8652_WHOAMI_VALUE, MMA865x_I2C_Configure(), MMA865x_I2C_Initialize(), MMA865x_I2C_ReadData(), MMA865x_I2C_SetIdleTask(), mma865x_isr_callback(), MMA865x_SYSMOD_SYSMOD_WAKE, GENERIC_DRIVER_GPIO::pin_init, RED_LED, SENSOR_ERROR_NONE, GENERIC_DRIVER_GPIO::set_pin, SMC, SMC_SetPowerModeVlpr(), SMC_SetPowerModeWait(), and status.

Here is the call graph for this function:

◆ mma865x_isr_callback()

void mma865x_isr_callback ( void *  pUserData)

This is the Sensor ISR implementation.


This function sets the flag which indicates if a new sample(s) is available for reading or new event has occurred.

Parameters
[in]pUserDataThis is a void pointer to the instance of the user specific data structure for the ISR.
Returns
void There is no return value.
Constraints:
None

Yes

Set flag to indicate Sensor has detected an event.

Definition at line 88 of file mma865x_auto-wake-sleep.c.

References gMma865xIntFlag.

Referenced by main().

Here is the caller graph for this function:

Variable Documentation

◆ gMma8562ReadSysMode

const registerreadlist_t gMma8562ReadSysMode[] = {{.readFrom = MMA865x_SYSMOD, .numBytes = 1}, __END_READ_DATA__}

Read register list for MMA8562 to read SysMode Register.

Definition at line 69 of file mma865x_auto-wake-sleep.c.

◆ gMma865xIntFlag

volatile bool gMma865xIntFlag = false

Definition at line 74 of file mma865x_auto-wake-sleep.c.

Referenced by main(), and mma865x_isr_callback().

◆ mma865x_autowake_motiondet_config

const registerwritelist_t mma865x_autowake_motiondet_config[]
Initial value:
= {
#define MMA865x_CTRL_REG1_DR_MASK
Definition: mma865x.h:1534
#define MMA865x_FF_MT_CFG_YEFE_MASK
Definition: mma865x.h:854
#define MMA865x_CTRL_REG1_DR_800HZ
Definition: mma865x.h:1548
#define MMA865x_CTRL_REG5_INT_CFG_FF_MT_INT1
Definition: mma865x.h:1851
#define MMA865x_CTRL_REG3_WAKE_FF_MT_MASK
Definition: mma865x.h:1667
#define MMA865x_CTRL_REG1_ASLP_RATE_1_56HZ
Definition: mma865x.h:1547
#define MMA865x_FF_MT_CFG_XEFE_EN
Definition: mma865x.h:881
#define ASLP_COUNT
#define MMA865x_FF_MT_THS_THS_MASK
Definition: mma865x.h:983
#define __END_WRITE_DATA__
Definition: sensor_drv.h:45
#define MMA865x_CTRL_REG3_IPOL_MASK
Definition: mma865x.h:1664
#define MMA865x_CTRL_REG3_IPOL_ACTIVE_HIGH
Definition: mma865x.h:1701
#define MMA865x_CTRL_REG4_INT_EN_FF_MT_EN
Definition: mma865x.h:1776
#define MMA865x_CTRL_REG4_INT_EN_FF_MT_MASK
Definition: mma865x.h:1743
#define MMA865x_CTRL_REG2_MODS_MASK
Definition: mma865x.h:1592
#define MT_FFMT_THS
#define MMA865x_CTRL_REG1_ACTIVE_STANDBY
Definition: mma865x.h:1558
#define MMA865x_CTRL_REG1_ACTIVE_MASK
Definition: mma865x.h:1528
#define MMA865x_CTRL_REG1_F_READ_MASK
Definition: mma865x.h:1531
#define MMA865x_CTRL_REG5_INT_CFG_FF_MT_MASK
Definition: mma865x.h:1818
#define MMA865x_FF_MT_CFG_XEFE_MASK
Definition: mma865x.h:851
#define MMA865x_FF_MT_CFG_OAE_MOTION
Definition: mma865x.h:873
#define MMA865x_CTRL_REG2_SMODS_MASK
Definition: mma865x.h:1598
#define MMA865x_CTRL_REG1_ASLP_RATE_MASK
Definition: mma865x.h:1537
#define MMA865x_CTRL_REG2_SMODS_LP
Definition: mma865x.h:1618
#define MMA865x_CTRL_REG2_SLPE_MASK
Definition: mma865x.h:1595
#define MT_FFMT_COUNT
#define MMA865x_CTRL_REG2_SLPE_EN
Definition: mma865x.h:1620
#define MMA865x_FF_MT_CFG_OAE_MASK
Definition: mma865x.h:860
#define MMA865x_CTRL_REG3_WAKE_FF_MT_EN
Definition: mma865x.h:1699
#define MMA865x_CTRL_REG2_MODS_LP
Definition: mma865x.h:1624
#define MMA865x_CTRL_REG1_F_READ_NORMAL
Definition: mma865x.h:1556
#define MMA865x_FF_MT_CFG_YEFE_EN
Definition: mma865x.h:878

Definition at line 45 of file mma865x_auto-wake-sleep.c.