LPS25Hのライブラリ(i2C)です

Dependencies:   mbed

Dependents:   quto_LPS25H_sample4

Committer:
PQUTO
Date:
Fri Jan 20 20:43:29 2017 +0000
Revision:
0:028338208ba1
LPS25H?????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
PQUTO 0:028338208ba1 1 #include "mbed.h"
PQUTO 0:028338208ba1 2 #include "LPS25H.h"
PQUTO 0:028338208ba1 3
PQUTO 0:028338208ba1 4
PQUTO 0:028338208ba1 5 //Serial pc(USBTX, USBRX); //tx, rx
PQUTO 0:028338208ba1 6
PQUTO 0:028338208ba1 7
PQUTO 0:028338208ba1 8 MyLPS25H::MyLPS25H(PinName SDA, PinName SCL) : _SDA(SDA), _SCL(SCL){
PQUTO 0:028338208ba1 9 // I2C i2c(_SDA, _SCL);
PQUTO 0:028338208ba1 10 }
PQUTO 0:028338208ba1 11
PQUTO 0:028338208ba1 12 void MyLPS25H::SetPress()
PQUTO 0:028338208ba1 13 {
PQUTO 0:028338208ba1 14 I2C i2c(_SDA, _SCL); // sda, scl
PQUTO 0:028338208ba1 15 char cmd[2];
PQUTO 0:028338208ba1 16 cmd[0] = WHO_AM_I;
PQUTO 0:028338208ba1 17 i2c.write(SLV_WRITE, cmd, 1);
PQUTO 0:028338208ba1 18 i2c.read(SLV_READ, cmd, 1);
PQUTO 0:028338208ba1 19 char check[1];
PQUTO 0:028338208ba1 20 check[0] = 0xBD;
PQUTO 0:028338208ba1 21
PQUTO 0:028338208ba1 22
PQUTO 0:028338208ba1 23 if(cmd[0] == check[0]){
PQUTO 0:028338208ba1 24 //pc.printf("LPS25H OK\r\n");
PQUTO 0:028338208ba1 25 }else{
PQUTO 0:028338208ba1 26 //pc.printf("LPS25H NG\r\n");
PQUTO 0:028338208ba1 27 }
PQUTO 0:028338208ba1 28
PQUTO 0:028338208ba1 29 cmd[0] = CTRL_REG1;
PQUTO 0:028338208ba1 30 cmd[1] = 0xC0;
PQUTO 0:028338208ba1 31 i2c.write(SLV_WRITE, cmd, 2);
PQUTO 0:028338208ba1 32 }
PQUTO 0:028338208ba1 33
PQUTO 0:028338208ba1 34 float MyLPS25H::GetPress()
PQUTO 0:028338208ba1 35 {
PQUTO 0:028338208ba1 36 I2C i2c(_SDA, _SCL); // sda, scl
PQUTO 0:028338208ba1 37 //char cmd[2];
PQUTO 0:028338208ba1 38 char cmd_H[2];
PQUTO 0:028338208ba1 39 char cmd_L[2];
PQUTO 0:028338208ba1 40 char cmd_XL[2];
PQUTO 0:028338208ba1 41 float Pressure = 0;
PQUTO 0:028338208ba1 42
PQUTO 0:028338208ba1 43 while(1)
PQUTO 0:028338208ba1 44 {
PQUTO 0:028338208ba1 45
PQUTO 0:028338208ba1 46 cmd_XL[0] = PRESS_OUT_XL;
PQUTO 0:028338208ba1 47 i2c.write(SLV_WRITE, cmd_XL, 1);
PQUTO 0:028338208ba1 48 i2c.read(SLV_READ, cmd_XL, 1);
PQUTO 0:028338208ba1 49
PQUTO 0:028338208ba1 50 cmd_L[0] = PRESS_OUT_L;
PQUTO 0:028338208ba1 51 i2c.write(SLV_WRITE, cmd_L, 1);
PQUTO 0:028338208ba1 52 i2c.read(SLV_READ, cmd_L, 1);
PQUTO 0:028338208ba1 53
PQUTO 0:028338208ba1 54 cmd_H[0] = PRESS_OUT_H;
PQUTO 0:028338208ba1 55 i2c.write(SLV_WRITE, cmd_H, 1);
PQUTO 0:028338208ba1 56 i2c.read(SLV_READ, cmd_H, 1);
PQUTO 0:028338208ba1 57
PQUTO 0:028338208ba1 58 unsigned long Press_H = 0, Press_L = 0, Press_XL = 0;
PQUTO 0:028338208ba1 59 Press_XL = (long)cmd_XL[0];
PQUTO 0:028338208ba1 60 Press_L = (long)cmd_L[0];
PQUTO 0:028338208ba1 61 Press_H = (long)cmd_H[0];
PQUTO 0:028338208ba1 62 // Pressure = (cmd_H[0]<<20 | cmd_H[1]<<16 | cmd_L[0]<<12 | cmd_L[1]<<8 | cmd_XL[0]<<4 | cmd_XL[1])/4096;
PQUTO 0:028338208ba1 63 Pressure = (float)(Press_H << 16 | Press_L << 8 | Press_XL);
PQUTO 0:028338208ba1 64 return Pressure/4096;
PQUTO 0:028338208ba1 65 }
PQUTO 0:028338208ba1 66
PQUTO 0:028338208ba1 67 }
PQUTO 0:028338208ba1 68