LPS25Hのライブラリ(i2C)です
Dependencies: mbed
Dependents: quto_LPS25H_sample4
LPS25H.cpp@0:028338208ba1, 2017-01-20 (annotated)
- Committer:
- PQUTO
- Date:
- Fri Jan 20 20:43:29 2017 +0000
- Revision:
- 0:028338208ba1
LPS25H?????????????
Who changed what in which revision?
User | Revision | Line number | New 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 |