Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed nRF51822 strike_detect
Fork of TenCount_BLE by
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
Generated on Thu Aug 18 2022 13:14:57 by
