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.
LIS3DHnew.cpp
00001 #include "mbed.h" 00002 00003 I2C i2c(p9,p10);//sda,scl 00004 Serial pc(USBTX,USBRX); 00005 //DigitalOut led(LED1); 00006 // addr 00007 #define WRITE_ADDR 0x30 00008 #define READ_ADDR 0x31 00009 // LIS3DH ID 00010 #define I_AM_LIS3DH 0x33 00011 00012 // Register's definition 00013 #define LIS3DH_STATUS_REG_AUX 0x07 00014 #define LIS3DH_OUT_ADC1_L 0x08 00015 #define LIS3DH_OUT_ADC1_H 0x09 00016 #define LIS3DH_OUT_ADC2_L 0x0a 00017 #define LIS3DH_OUT_ADC2_H 0x0b 00018 #define LIS3DH_OUT_ADC3_L 0x0c 00019 #define LIS3DH_OUT_ADC3_H 0x0d 00020 #define LIS3DH_INT_COUNTER_REG 0x0e 00021 #define LIS3DH_WHO_AM_I 0x0f 00022 #define LIS3DH_TEMP_CFG_REG 0x1f 00023 #define LIS3DH_CTRL_REG1 0x20 00024 #define LIS3DH_CTRL_REG2 0x21 00025 #define LIS3DH_CTRL_REG3 0x22 00026 #define LIS3DH_CTRL_REG4 0x23 00027 #define LIS3DH_CTRL_REG5 0x24 00028 #define LIS3DH_CTRL_REG6 0x25 00029 #define LIS3DH_REFERENCE 0x26 00030 #define LIS3DH_STATUS_REG2 0x27 00031 #define LIS3DH_OUT_X_L 0x28 00032 #define LIS3DH_OUT_X_H 0x29 00033 #define LIS3DH_OUT_Y_L 0x2a 00034 #define LIS3DH_OUT_Y_H 0x2b 00035 #define LIS3DH_OUT_Z_L 0x2c 00036 #define LIS3DH_OUT_Z_H 0x2d 00037 #define LIS3DH_FIFO_CTRL_REG 0x2e 00038 #define LIS3DH_FIFO_SRC_REG 0x2f 00039 #define LIS3DH_INT1_CFG 0x30 00040 #define LIS3DH_INT1_SOURCE 0x31 00041 #define LIS3DH_INT1_THS 0x32 00042 #define LIS3DH_INT1_DURATION 0x33 00043 #define LIS3DH_CLICK_CFG 0x38 00044 #define LIS3DH_CLICK_SRC 0x39 00045 #define LIS3DH_CLICK_THS 0x3a 00046 #define LIS3DH_TIME_LIMIT 0x3b 00047 #define LIS3DH_TIME_LATENCY 0x3c 00048 #define LIS3DH_TIME_WINDOW 0x3d 00049 00050 // definition for Nomalization 00051 #define LIS3DH_SENSITIVITY_2G (0.001F) 00052 #define LIS3DH_SENSITIVITY_4G (0.002F) 00053 #define LIS3DH_SENSITIVITY_8G (0.004F) 00054 #define LIS3DH_SENSITIVITY_16G (0.012F) 00055 char dbf[2],addr; 00056 int check; 00057 float dt[3]; 00058 00059 int che(void); 00060 int cot(void); 00061 int main(){ 00062 int check; 00063 check = che(); 00064 if (check == 1) { 00065 while(1) { 00066 cot(); 00067 wait(1); 00068 } 00069 } 00070 } 00071 int che(void){ 00072 addr = WRITE_ADDR; 00073 dbf[0] = LIS3DH_WHO_AM_I; 00074 i2c.write(addr, dbf,1); 00075 i2c.read(addr | 1, dbf, 1); 00076 if (dbf[0] == I_AM_LIS3DH) { 00077 return 1; 00078 } 00079 else { 00080 return 0; 00081 } 00082 } 00083 int cot(void) { 00084 char data[6]; 00085 dbf[0] = LIS3DH_CTRL_REG1; 00086 dbf[1] = 0x7f; 00087 i2c.write(addr , dbf , 2); 00088 dbf[0] = LIS3DH_OUT_X_L | 0x80; 00089 i2c.write(addr, dbf, 1); 00090 i2c.read(addr | 1, data, 6); 00091 dt[0] = float(short((data[1]<<8) | data[0])) *LIS3DH_SENSITIVITY_2G / 15; 00092 dt[1] = float(short((data[3]<<8) | data[2])) *LIS3DH_SENSITIVITY_2G / 15; 00093 dt[2] = float(short((data[5]<<8) | data[4])) *LIS3DH_SENSITIVITY_2G / 15; 00094 pc.printf("X=%f __Y=%f __Z=%f \n",dt[0],dt[1],dt[2]); 00095 return 0; 00096 }
Generated on Fri Jul 29 2022 01:57:59 by
1.7.2