ほぼ関数かしたLIS3DH

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
tknara
Date:
Mon Feb 16 11:10:28 2015 +0000
Commit message:
LIS3DH

Changed in this revision

LIS3DHnew.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LIS3DHnew.cpp	Mon Feb 16 11:10:28 2015 +0000
@@ -0,0 +1,96 @@
+#include "mbed.h"
+ 
+I2C i2c(p9,p10);//sda,scl
+Serial pc(USBTX,USBRX);
+//DigitalOut led(LED1);
+// addr
+#define WRITE_ADDR 0x30
+#define READ_ADDR 0x31
+//   LIS3DH ID
+#define I_AM_LIS3DH         0x33
+ 
+//  Register's definition
+#define LIS3DH_STATUS_REG_AUX  0x07
+#define LIS3DH_OUT_ADC1_L      0x08
+#define LIS3DH_OUT_ADC1_H      0x09
+#define LIS3DH_OUT_ADC2_L      0x0a
+#define LIS3DH_OUT_ADC2_H      0x0b
+#define LIS3DH_OUT_ADC3_L      0x0c
+#define LIS3DH_OUT_ADC3_H      0x0d
+#define LIS3DH_INT_COUNTER_REG 0x0e
+#define LIS3DH_WHO_AM_I        0x0f
+#define LIS3DH_TEMP_CFG_REG    0x1f
+#define LIS3DH_CTRL_REG1       0x20
+#define LIS3DH_CTRL_REG2       0x21
+#define LIS3DH_CTRL_REG3       0x22
+#define LIS3DH_CTRL_REG4       0x23
+#define LIS3DH_CTRL_REG5       0x24
+#define LIS3DH_CTRL_REG6       0x25
+#define LIS3DH_REFERENCE       0x26
+#define LIS3DH_STATUS_REG2     0x27
+#define LIS3DH_OUT_X_L         0x28
+#define LIS3DH_OUT_X_H         0x29
+#define LIS3DH_OUT_Y_L         0x2a
+#define LIS3DH_OUT_Y_H         0x2b
+#define LIS3DH_OUT_Z_L         0x2c
+#define LIS3DH_OUT_Z_H         0x2d
+#define LIS3DH_FIFO_CTRL_REG   0x2e
+#define LIS3DH_FIFO_SRC_REG    0x2f
+#define LIS3DH_INT1_CFG        0x30
+#define LIS3DH_INT1_SOURCE     0x31
+#define LIS3DH_INT1_THS        0x32
+#define LIS3DH_INT1_DURATION   0x33
+#define LIS3DH_CLICK_CFG       0x38
+#define LIS3DH_CLICK_SRC       0x39
+#define LIS3DH_CLICK_THS       0x3a
+#define LIS3DH_TIME_LIMIT      0x3b
+#define LIS3DH_TIME_LATENCY    0x3c
+#define LIS3DH_TIME_WINDOW     0x3d
+ 
+// definition for Nomalization
+#define LIS3DH_SENSITIVITY_2G  (0.001F)
+#define LIS3DH_SENSITIVITY_4G  (0.002F)
+#define LIS3DH_SENSITIVITY_8G  (0.004F)
+#define LIS3DH_SENSITIVITY_16G (0.012F)
+char dbf[2],addr;
+int check;
+float dt[3];
+
+int che(void);
+int cot(void);   
+int main(){
+    int check;
+    check = che();
+    if (check == 1) {
+        while(1) {
+            cot();
+            wait(1);
+            }
+        }
+    }
+int che(void){
+            addr = WRITE_ADDR;
+            dbf[0] = LIS3DH_WHO_AM_I;
+            i2c.write(addr, dbf,1);
+            i2c.read(addr | 1, dbf, 1);
+            if  (dbf[0] == I_AM_LIS3DH) {
+                return 1;
+            }
+            else {
+                return 0;
+            }
+}
+int cot(void) {
+            char data[6];
+            dbf[0] = LIS3DH_CTRL_REG1;
+            dbf[1] = 0x7f;
+            i2c.write(addr , dbf , 2);         
+            dbf[0] = LIS3DH_OUT_X_L | 0x80;
+            i2c.write(addr, dbf, 1);
+            i2c.read(addr | 1, data, 6);
+            dt[0] = float(short((data[1]<<8) | data[0])) *LIS3DH_SENSITIVITY_2G  / 15;
+            dt[1] = float(short((data[3]<<8) | data[2])) *LIS3DH_SENSITIVITY_2G  / 15;
+            dt[2] = float(short((data[5]<<8) | data[4])) *LIS3DH_SENSITIVITY_2G  / 15;
+            pc.printf("X=%f __Y=%f __Z=%f \n",dt[0],dt[1],dt[2]);
+            return 0;
+        }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Feb 16 11:10:28 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e188a91d3eaa
\ No newline at end of file