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.
Dependents: 3_test_EEROMM-barometer 5_waitmode 5_flightmode 5-2_thrustermode ... more
LPS33HW.cpp@0:efb4130c9550, 2020-06-29 (annotated)
- 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?
User | Revision | Line number | New 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 |