MZJ / Mbed 2 deprecated TenCount_BLE_08252015

Dependencies:   BLE_API mbed nRF51822 strike_detect

Fork of TenCount_BLE by MZJ

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LIS3DH.h Source File

LIS3DH.h

00001 #ifndef LIS3DH_H
00002 #define LIS3DH_H
00003 
00004 #include "mbed.h"
00005 
00006 //Register Addresses:
00007 const int CTRL_REG1 = 0x20; //Register that can enable,disable axes and Powermodes
00008 const int WHO_AM_I = 0x0F; //Dummy register, set at 0x33
00009 const uint8_t READ = 1<<7;//LIS3DH's read command
00010 const uint8_t WRITE = 0;
00011 
00012 // Core registers
00013 enum{                                               // BINARY   DEFAULT   TYPE
00014   LIS3DH_REGISTER_STATUS_REG_AUX      = 0x07,   // 00000111           r
00015   LIS3DH_REGISTER_OUT_ADC1_L          = 0x08,   // 00001000 output    r
00016   LIS3DH_REGISTER_OUT_ADC1_H          = 0x09,   // 00001001 output    r
00017   LIS3DH_REGISTER_OUT_ADC2_L          = 0x0A,   // 00001010 output    r
00018   LIS3DH_REGISTER_OUT_ADC2_H          = 0x0B,   // 00001011 output    r
00019   LIS3DH_REGISTER_OUT_ADC3_L          = 0x0C,   // 00001100 output    r
00020   LIS3DH_REGISTER_OUT_ADC3_H          = 0x0D,   // 00001101 output    r
00021   LIS3DH_REGISTER_INT_COUNTER_REG     = 0x0E,   // 00001110           r
00022   LIS3DH_REGISTER_WHO_AM_I            = 0x0F,   // 00001111 00110011  r
00023   LIS3DH_REGISTER_TEMP_CFG_REG        = 0x1F,   // 00011111           rw
00024   LIS3DH_REGISTER_CTRL_REG1           = 0x20,   // 00100000 00000111  rw
00025   LIS3DH_REGISTER_CTRL_REG2           = 0x21,   // 00100001 00000000  rw
00026   LIS3DH_REGISTER_CTRL_REG3           = 0x22,   // 00100010 00000000  rw
00027   LIS3DH_REGISTER_CTRL_REG4           = 0x23,   // 00100011 00000000  rw
00028   LIS3DH_REGISTER_CTRL_REG5           = 0x24,   // 00100100 00000000  rw
00029   LIS3DH_REGISTER_CTRL_REG6           = 0x25,   // 00100101 00000000  rw
00030   LIS3DH_REGISTER_REFERENCE           = 0x26,   // 00100110 00000000  rw
00031   LIS3DH_REGISTER_STATUS_REG2         = 0x27,   // 00100111 00000000  r
00032   LIS3DH_REGISTER_OUT_X_L             = 0x28,   // 00101000 output    r
00033   LIS3DH_REGISTER_OUT_X_H             = 0x29,   // 00101001 output    r
00034   LIS3DH_REGISTER_OUT_Y_L             = 0x2A,   // 00101010 output    r
00035   LIS3DH_REGISTER_OUT_Y_H             = 0x2B,   // 00101011 output    r
00036   LIS3DH_REGISTER_OUT_Z_L             = 0x2C,   // 00101100 output    r
00037   LIS3DH_REGISTER_OUT_Z_H             = 0x2D,   // 00101101 output    r
00038   LIS3DH_REGISTER_FIFO_CTRL_REG       = 0x2E,   // 00101110 00000000  rw
00039   LIS3DH_REGISTER_FIFO_SRC_REG        = 0x2F,   // 00101111           r
00040   LIS3DH_REGISTER_INT1_CFG            = 0x30,   // 00110000 00000000  rw
00041   LIS3DH_REGISTER_INT1_SOURCE         = 0x31,   // 00110001 00000000  r
00042   LIS3DH_REGISTER_INT1_THS            = 0x32,   // 00110010 00000000  rw
00043   LIS3DH_REGISTER_INT1_DURATION       = 0x33,   // 00110011 00000000  rw
00044   LIS3DH_REGISTER_CLICK_CFG           = 0x38,   // 00111000 00000000  rw
00045   LIS3DH_REGISTER_CLICK_SRC           = 0x39,   // 00111001 00000000  r
00046   LIS3DH_REGISTER_CLICK_THS           = 0x3A,   // 00111010 00000000  rw
00047   LIS3DH_REGISTER_TIME_LIMIT          = 0x3B,   // 00111011 00000000  rw
00048   LIS3DH_REGISTER_TIME_LATENCY        = 0x3C,   // 00111100 00000000  rw
00049   LIS3DH_REGISTER_TIME_WINDOW         = 0x3D    // 00111101 00000000  rw
00050 };
00051 
00052 // Bit twiddling keys for use with different registers
00053 enum{
00054   LIS3DH_STATUS_REG_ZYXDA             = 0x08,   // STATUS_REG: XYZ - sample ready
00055   LIS3DH_STATUS_REG_ZYXOR             = 0x80,   // STATUS_REG: XYZ - new set of data has overwritten the previous ones
00056   LIS3DH_CTRL_REG1_XEN                = 0x01,   // CTRL_REG1: X enable
00057   LIS3DH_CTRL_REG1_YEN                = 0x02,   // CTRL_REG1: Y enable
00058   LIS3DH_CTRL_REG1_ZEN                = 0x04,   // CTRL_REG1: Z enable
00059   LIS3DH_CTRL_REG1_XYZEN              = 0x07,   // CTRL_REG1: X+Y+Z enable
00060   LIS3DH_CTRL_REG1_LPEN               = 0x08,   // CTRL_REG1: Low power enable
00061   LIS3DH_CTRL_REG1_DATARATE_POWERDOWN = 0x00,   // CTRL_REG1: 0000 xxxx
00062   LIS3DH_CTRL_REG1_DATARATE_1HZ       = 0x10,   // CTRL_REG1: 0001 xxxx
00063   LIS3DH_CTRL_REG1_DATARATE_10HZ      = 0x20,   // CTRL_REG1: 0010 xxxx
00064   LIS3DH_CTRL_REG1_DATARATE_25HZ      = 0x30,   // CTRL_REG1: 0011 xxxx
00065   LIS3DH_CTRL_REG1_DATARATE_50HZ      = 0x40,   // CTRL_REG1: 0100 xxxx
00066   LIS3DH_CTRL_REG1_DATARATE_100HZ     = 0x50,   // CTRL_REG1: 0101 xxxx
00067   LIS3DH_CTRL_REG1_DATARATE_200HZ     = 0x60,   // CTRL_REG1: 0110 xxxx
00068   LIS3DH_CTRL_REG1_DATARATE_400HZ     = 0x70,   // CTRL_REG1: 0111 xxxx
00069   LIS3DH_CTRL_REG1_DATARATE_1500HZ    = 0x80,   // CTRL_REG1: 1000 xxxx
00070   LIS3DH_CTRL_REG1_DATARATE_5000HZ    = 0x90,   // CTRL_REG1: 1001 xxxx
00071   LIS3DH_CTRL_REG4_BLOCKDATAUPDATE    = 0x80,   // CTRL_REG4: 1xxx xxxx
00072   LIS3DH_CTRL_REG4_SCALE_2G           = 0x00,   // CTRL_REG4: xx00 xxxx
00073   LIS3DH_CTRL_REG4_SCALE_4G           = 0x10,   // CTRL_REG4: xx01 xxxx
00074   LIS3DH_CTRL_REG4_SCALE_8G           = 0x20,   // CTRL_REG4: xx10 xxxx
00075   LIS3DH_CTRL_REG4_SCALE_16G          = 0x30,   // CTRL_REG4: xx11 xxxx
00076   LIS3DH_CTRL_REG4_HIGH_RES           = 0x04,   // CTRL_REG4: xxxx x1xx
00077 };
00078 
00079 void LIS3DH_init(void);
00080 uint8_t LIS3DH_read(uint8_t address);
00081 void LIS3DH_write(uint8_t data, uint8_t address);
00082 uint8_t LIS3DH2_read(uint8_t address);
00083 void LIS3DH2_write(uint8_t data, uint8_t address);
00084 void LIS3DH_readAll(int16_t xyz[]);
00085 
00086 
00087 #endif