SSLM1 / 2_LPS33HW

Dependents:   3_test_EEROMM-barometer 5_waitmode 5_flightmode 5-2_thrustermode ... more

Committer:
rary
Date:
Mon Jun 29 08:13:45 2020 +0000
Revision:
0:efb4130c9550
Child:
1:9574dea45061
LPS33HW_barometer Library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rary 0:efb4130c9550 1 #include "mbed.h"
rary 0:efb4130c9550 2 #include "LPS33HW.h"
rary 0:efb4130c9550 3
rary 0:efb4130c9550 4 LPS33HW::LPS33HW(PinName sda,PinName scl) : i2c(sda, scl) ,addr(S_add)
rary 0:efb4130c9550 5 {
rary 0:efb4130c9550 6 }
rary 0:efb4130c9550 7
rary 0:efb4130c9550 8 LPS33HW::~LPS33HW()
rary 0:efb4130c9550 9 {
rary 0:efb4130c9550 10 }
rary 0:efb4130c9550 11
rary 0:efb4130c9550 12 char LPS33HW::read(char regist)
rary 0:efb4130c9550 13 {
rary 0:efb4130c9550 14 char cmd[2];
rary 0:efb4130c9550 15 cmd[0]= regist;
rary 0:efb4130c9550 16 i2c.write(addr,cmd,1);
rary 0:efb4130c9550 17 i2c.read(addr,cmd,1);
rary 0:efb4130c9550 18 return cmd[0];
rary 0:efb4130c9550 19 }
rary 0:efb4130c9550 20
rary 0:efb4130c9550 21 void LPS33HW::write(char regist,char data)
rary 0:efb4130c9550 22 {
rary 0:efb4130c9550 23 char cmd[2];
rary 0:efb4130c9550 24 cmd[0]=regist;
rary 0:efb4130c9550 25 cmd[1]=data;
rary 0:efb4130c9550 26 i2c.write(addr,cmd,2);
rary 0:efb4130c9550 27 }
rary 0:efb4130c9550 28
rary 0:efb4130c9550 29 char LPS33HW::who()
rary 0:efb4130c9550 30 {
rary 0:efb4130c9550 31 char _ID;
rary 0:efb4130c9550 32 _ID = read(WHO_AM_I);
rary 0:efb4130c9550 33 return _ID;
rary 0:efb4130c9550 34 }
rary 0:efb4130c9550 35
rary 0:efb4130c9550 36 void LPS33HW::start(char mode)
rary 0:efb4130c9550 37 {
rary 0:efb4130c9550 38 char _mode;
rary 0:efb4130c9550 39 if(mode == 0){
rary 0:efb4130c9550 40 _mode = Normal;
rary 0:efb4130c9550 41 }
rary 0:efb4130c9550 42 else if(mode == 1){
rary 0:efb4130c9550 43 _mode = High_rate;
rary 0:efb4130c9550 44 }
rary 0:efb4130c9550 45
rary 0:efb4130c9550 46 write(CTRL_REG1, _mode);
rary 0:efb4130c9550 47 }
rary 0:efb4130c9550 48
rary 0:efb4130c9550 49 double LPS33HW::data_read()
rary 0:efb4130c9550 50 {
rary 0:efb4130c9550 51 unsigned long M, L, XL;
rary 0:efb4130c9550 52 double press;
rary 0:efb4130c9550 53 double P;
rary 0:efb4130c9550 54
rary 0:efb4130c9550 55 M = read(press_msb);
rary 0:efb4130c9550 56 L = read(press_lsb);
rary 0:efb4130c9550 57 XL = read(press_xlsb);
rary 0:efb4130c9550 58
rary 0:efb4130c9550 59 press = (M << 16) | (L << 8) | XL;
rary 0:efb4130c9550 60 P = press/4096;
rary 0:efb4130c9550 61
rary 0:efb4130c9550 62 return P;
rary 0:efb4130c9550 63 }
rary 0:efb4130c9550 64