8.6 Example code sequences
8.6.1 Motion detection event
The following example shows how to set up and use a motion detection event
generated from an accelerometer sensor. The overall sequence will be similar for
other sensor or event types.
8.6.1.1 Definitions and declarations
#include "sensor.h"
sensor_t
accel_dev;
// device descriptor
sensor_event_desc_t
accel_event; // event descriptor
sensor_data_t
accel_data;
// data from event handler
8.6.1.2 Sensor and event initialization
sensor_attach (&accel_dev, SENSOR_TYPE_ACCELEROMETER, 0, 0);
accel_event = {
.sensor
= &accel_dev,
// use accelerometer
.event
= SENSOR_EVENT_MOTION, // motion detect event
.data.scaled = true,
// return scaled data
};
.handler
.arg
.enabled
= accel_handler,
= &accel_data,
= true
// address of handler
// where to put data
// enable event
sensor_add_event (&accel_event);
// add event
8.6.1.3 Sensor event handler routine
void accel_handler (volatile void * in)
{
// Set pointer to input descriptor address
sensor_event_desc_t * const event = (sensor_event_desc_t *) in;
// Copy data – note 'arg' = address of 'accel_data' structure
*((sensor_data_t *)(event->arg)) = event->data;
/* do other stuff (set a flag for application, etc.) */
}
8.6.2 Tap detection event
The following example shows how to set up and use a tap detection event generated
from an accelerometer sensor. The initialization is somewhat different from other
events because the tap detection involves a number of configurable timing and
intensity threshold parameters. The sensor_set_tap() function is used to set the
various parameters that affect tap detection.
24
Atmel AVR4016
8367B-AVR-06/11
相关PDF资料
ATAVRSBIN2 INERTIAL TWO SENSOR BOARD
ATAVRSBLP1 LIGHT AND PROXIMITY SENSOR BOARD
ATAVRSBPR1 BAROMETRIC PRESSURE ONE SNSR BRD
ATQT600 KIT EVAL TOUCH FOR QT600
ATU6-P305T-R CABLE CAT6 FULL-BOX 305M GRAY
ATUP-P305T-R CABLE CAT5E PULL-BOX 305M GRAY
ATUP-V305T-R CABLE CAT5E REEL 305M GRAY
AWG28-05/F-1/300-R CABLE 5 COND MULTI 300' RIBBON
相关代理商/技术参数
ATAVRSBIN2 功能描述:多功能传感器开发工具 9DOF Inertial Sensor Board 2 RoHS:否 制造商:Texas Instruments 工具用于评估:LMP91200 接口类型:SPI 工作电压:1.8 V to 5.5 V 最大工作温度:
ATAVRSBLP1 功能描述:光学传感器开发工具 Ambient Light and Proximity Snsr Brd RoHS:否 制造商:ams 工具用于评估: 接口类型: 最大工作温度:
ATAVRSBPR1 功能描述:压力传感器开发工具 Barometric Pressure Sensor Board 1 RoHS:否 制造商:Freescale Semiconductor 工具用于评估:MPL3115A2 接口类型:USB 最大工作温度:
ATAVRSECURITYX 功能描述:安全/ 验证开发工具 Security Module Kit for Xplain Series RoHS:否 制造商:Digi International 产品:Development Kits 工具用于评估:XEB-AW140 接口类型:SPI, USB 工作电源电压:3.1 V to 3.6 V
ATAVRSMD 功能描述:ADAPTER KIT SMD ICE200 RoHS:否 类别:编程器,开发系统 >> 过时/停产零件编号 系列:- 标准包装:1 系列:- 类型:MCU 适用于相关产品:Freescale MC68HC908LJ/LK(80-QFP ZIF 插口) 所含物品:面板、缆线、软件、数据表和用户手册 其它名称:520-1035
ATAVR-SOAKIT 功能描述:插座和适配器 Standoff Adapter Kit for JTAG debuggers RoHS:否 制造商:Silicon Labs 产品:Adapter 用于:EM35x
ATAVRTEMPSENSORX 功能描述:温度传感器开发工具 Temp Sensor kit for Xplain Series RoHS:否 制造商:Texas Instruments 产品类型:Temperature Sensors and Control ICs 工具用于评估:MSP430G2553 接口类型:USB 工作电源电压: 工作电源电流:
ATAVRTS2080A 功能描述:开发板和工具包 - AVR ATmega88 QTouch QTch kit w/SW librar RoHS:否 制造商:Arduino 产品:Evaluation Boards 工具用于评估:ATMega32U4 核心:AVR 接口类型:I2C, UART, USB 工作电源电压:6 V to 20 V