BMP280から気圧データを取得します。updateで更新動作、getpressで値を読み出します

Dependents:   SensorManager

Committer:
kim1212
Date:
Sun Dec 04 14:38:21 2016 +0000
Revision:
0:54d7f18450e6
Child:
1:a65c7f637b1e
BMP280??????????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kim1212 0:54d7f18450e6 1 #ifndef BMP280_H
kim1212 0:54d7f18450e6 2 #define BMP280_H
kim1212 0:54d7f18450e6 3 /*
kim1212 0:54d7f18450e6 4 #include "mbed.h"
kim1212 0:54d7f18450e6 5
kim1212 0:54d7f18450e6 6 #include "BMP280.h"
kim1212 0:54d7f18450e6 7
kim1212 0:54d7f18450e6 8 BMP280 bmp(D11,D12,D13,D10);
kim1212 0:54d7f18450e6 9
kim1212 0:54d7f18450e6 10 int main() {
kim1212 0:54d7f18450e6 11
kim1212 0:54d7f18450e6 12 bmp.init(OSR_1,OSR_4,T_SB_0_5,IIR_0);
kim1212 0:54d7f18450e6 13
kim1212 0:54d7f18450e6 14
kim1212 0:54d7f18450e6 15 while(1) {
kim1212 0:54d7f18450e6 16 while(bmp.update()!=1);
kim1212 0:54d7f18450e6 17 printf("%f\r\n",bmp.getpress());
kim1212 0:54d7f18450e6 18 wait(0.1);
kim1212 0:54d7f18450e6 19 }
kim1212 0:54d7f18450e6 20 }
kim1212 0:54d7f18450e6 21 */
kim1212 0:54d7f18450e6 22
kim1212 0:54d7f18450e6 23 #define OSR_1 0b001
kim1212 0:54d7f18450e6 24 #define OSR_2 0b010
kim1212 0:54d7f18450e6 25 #define OSR_4 0b011
kim1212 0:54d7f18450e6 26 #define OSR_8 0b100
kim1212 0:54d7f18450e6 27 #define OSR_16 0b101
kim1212 0:54d7f18450e6 28
kim1212 0:54d7f18450e6 29 #define T_SB_0_5 0b000
kim1212 0:54d7f18450e6 30 #define T_SB_62_5 0b001
kim1212 0:54d7f18450e6 31 #define T_SB_125 0b010
kim1212 0:54d7f18450e6 32 #define T_SB_250 0b011
kim1212 0:54d7f18450e6 33 #define T_SB_500 0b100
kim1212 0:54d7f18450e6 34 #define T_SB_1000 0b101
kim1212 0:54d7f18450e6 35 #define T_SB_2000 0b110
kim1212 0:54d7f18450e6 36 #define T_SB_4000 0b111
kim1212 0:54d7f18450e6 37
kim1212 0:54d7f18450e6 38 #define IIR_0 0b000
kim1212 0:54d7f18450e6 39 #define IIR_4 0b100
kim1212 0:54d7f18450e6 40 #define IIR_16 0b10000
kim1212 0:54d7f18450e6 41
kim1212 0:54d7f18450e6 42
kim1212 0:54d7f18450e6 43
kim1212 0:54d7f18450e6 44 #include "mbed.h"
kim1212 0:54d7f18450e6 45
kim1212 0:54d7f18450e6 46 class BMP280 {
kim1212 0:54d7f18450e6 47
kim1212 0:54d7f18450e6 48 public:
kim1212 0:54d7f18450e6 49 BMP280(PinName mosi,PinName miso,PinName sck,PinName _cs);
kim1212 0:54d7f18450e6 50 void init(char t_osr,char p_osr,char t_sb,char IIR);
kim1212 0:54d7f18450e6 51 char readbyte(char adr);
kim1212 0:54d7f18450e6 52 void writebyte(char adr,char data);
kim1212 0:54d7f18450e6 53 void readnbyte(char adr,char *data,char num);
kim1212 0:54d7f18450e6 54
kim1212 0:54d7f18450e6 55 int bmp280_compensate_T_int32(int adc_T);
kim1212 0:54d7f18450e6 56 unsigned int bmp280_compensate_P_int64(int adc_P);
kim1212 0:54d7f18450e6 57 bool update();
kim1212 0:54d7f18450e6 58 float getpress();
kim1212 0:54d7f18450e6 59
kim1212 0:54d7f18450e6 60
kim1212 0:54d7f18450e6 61 private:
kim1212 0:54d7f18450e6 62 SPI bmp;
kim1212 0:54d7f18450e6 63 DigitalOut cs;
kim1212 0:54d7f18450e6 64 int t_fine;
kim1212 0:54d7f18450e6 65 unsigned short dig_T1,dig_P1;
kim1212 0:54d7f18450e6 66 short dig_T2,dig_T3,dig_P2,dig_P3,dig_P4,dig_P5,dig_P6,dig_P7,dig_P8,dig_P9;
kim1212 0:54d7f18450e6 67 unsigned int press;
kim1212 0:54d7f18450e6 68
kim1212 0:54d7f18450e6 69
kim1212 0:54d7f18450e6 70
kim1212 0:54d7f18450e6 71 };
kim1212 0:54d7f18450e6 72
kim1212 0:54d7f18450e6 73
kim1212 0:54d7f18450e6 74
kim1212 0:54d7f18450e6 75
kim1212 0:54d7f18450e6 76 #endif