Common Sensor Service Light/Proximity Sensor Wake Event Example.
Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
#include <stdio.h>
#include <asf.h>
#include <led.h>
Macros | |
#define | ACTIVITY_LED LED4 /* LED to show awake/operating */ |
#define | LIGHT_LED LED1 /* LED to indicate light sensor interrupt */ |
#define | LIGHT_SAMPLE_RATE (10) /* Light sensor sample rate (Hz) */ |
#define | LIGHT_THRESH (300) /* Light threshold (lux) */ |
#define | LIGHT_WAKE (true) /* If true, use light level to wake up */ |
#define | PROX_CURRENT_mA (50) /* Prox sensor LED current value (mA) */ |
#define | PROX_LED LED0 /* LED to indicate proximity sensor interrupt */ |
#define | PROX_SAMPLE_RATE (10) /* proximity sensor sample rate (Hz) */ |
#define | PROX_THRESH (100) /* Set "near" proximity threshold (counts) */ |
#define | PROX_THRESHOLD (100) /* Manual prox. sensor threshold for "near" */ |
#define | PROX_WAKE (true) /* If true, use near proximity to wake up */ |
#define | SCALED_DATA (true) |
#define | SET_PROX_CURRENT (true) /* If true, manually set proximity current */ |
#define | SET_PROX_THRESHOLD |
#define | USE_PRINTF (true) |
Functions | |
static void | light_event (volatile sensor_event_data_t *event_data, volatile void *in) |
int | main (void) |
Inertial sensor demo application entry. More... | |
static void | prox_event (volatile sensor_event_data_t *event_data, volatile void *in) |
Variables | |
volatile sensor_data_t | light_data = { .scaled = SCALED_DATA } |
sensor_t | light_dev |
bool | light_event_occurred = false |
volatile int16_t | prox_channel |
volatile sensor_data_t | prox_data = { .scaled = SCALED_DATA } |
sensor_t | prox_dev |
bool | prox_event_occurred = false |
static const char *const | prox_labels [4] |
Strings to display based on proximity values. More... | |
#define ACTIVITY_LED LED4 /* LED to show awake/operating */ |
Referenced by main().
#define LIGHT_LED LED1 /* LED to indicate light sensor interrupt */ |
Referenced by light_event().
#define LIGHT_SAMPLE_RATE (10) /* Light sensor sample rate (Hz) */ |
Referenced by main().
#define LIGHT_THRESH (300) /* Light threshold (lux) */ |
Referenced by main().
#define PROX_CURRENT_mA (50) /* Prox sensor LED current value (mA) */ |
Referenced by main().
#define PROX_LED LED0 /* LED to indicate proximity sensor interrupt */ |
Referenced by prox_event().
#define PROX_SAMPLE_RATE (10) /* proximity sensor sample rate (Hz) */ |
Referenced by main().
#define PROX_THRESH (100) /* Set "near" proximity threshold (counts) */ |
#define PROX_THRESHOLD (100) /* Manual prox. sensor threshold for "near" */ |
Referenced by main().
#define SET_PROX_THRESHOLD |
#define USE_PRINTF (true) |
|
static |
Light Sensor Event Callback Routine
References sensor_event_data_t::data, light_event_occurred, and LIGHT_LED.
Referenced by main().
int main | ( | void | ) |
Inertial sensor demo application entry.
After initializing the Xplained platform and sensor boards, this application attaches descriptors to the ambient light and proximity sensor devices on an Xplained inertial sensor board. The sensors are configured to wake up the processor if given threshold values are surpassed.
References ACTIVITY_LED, sensor_device_t::caps, delay_ms, sensor_desc::drv, sensor_desc::err, sensor_data_t::light, light_event(), light_event_occurred, LIGHT_SAMPLE_RATE, LIGHT_THRESH, sensor_caps_t::name, prox_channel, PROX_CURRENT_mA, prox_event(), prox_event_occurred, prox_labels, PROX_SAMPLE_RATE, PROX_THRESHOLD, sensor_data_t::proximity, SCALED_DATA, sensor_add_event(), sensor_attach(), sensor_device_id(), SENSOR_EVENT_HIGH_LIGHT, SENSOR_EVENT_NEAR_PROXIMITY, sensor_platform_init(), sensor_set_channel(), sensor_set_current(), sensor_set_sample_rate(), sensor_set_threshold(), SENSOR_THRESHOLD_HIGH_LIGHT, SENSOR_THRESHOLD_NEAR_PROXIMITY, SENSOR_TYPE_LIGHT, SENSOR_TYPE_PROXIMITY, sleepmgr_enter_sleep(), sleepmgr_init(), sleepmgr_lock_mode(), and sensor_data_t::timestamp.
|
static |
Proximity Sensor Event Callback Routine
References sensor_event_data_t::channel, sensor_event_data_t::data, prox_channel, prox_event_occurred, and PROX_LED.
Referenced by main().
volatile sensor_data_t light_data = { .scaled = SCALED_DATA } |
Referenced by main(), sfh5712_get_light(), and sfh7770_get_light().
Referenced by light_event(), and main().
volatile int16_t prox_channel |
Referenced by main(), and prox_event().
volatile sensor_data_t prox_data = { .scaled = SCALED_DATA } |
sensor_t prox_dev |
|
static |
Strings to display based on proximity values.
Referenced by main().