Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1993 | - | 1 | // BMP085_output |
2 | // by Filipe Vieira |
||
3 | // Simple example of library usage with almost every BMP085 and lib features being used. |
||
4 | |||
5 | #include <Wire.h> |
||
6 | #include <BMP085.h> |
||
7 | |||
8 | BMP085 dps = BMP085(); |
||
9 | long Temperature = 0, Pressure = 0, Altitude = 0; |
||
10 | |||
11 | void setup(void) { |
||
12 | Serial.begin(9600); |
||
13 | Wire.begin(); |
||
14 | delay(1000); |
||
15 | |||
16 | dps.init(); |
||
17 | |||
18 | showall(); |
||
19 | |||
20 | Serial.println("Registers dump"); |
||
21 | Serial.println("=========================================================="); |
||
22 | dumpRegisters(); |
||
23 | Serial.println("Calibration data"); |
||
24 | Serial.println("=========================================================="); |
||
25 | dps.dumpCalData(); |
||
26 | |||
27 | delay(5000); |
||
28 | } |
||
29 | |||
30 | |||
31 | void loop(void) { |
||
32 | dps.getTemperature(&Temperature); |
||
33 | dps.getPressure(&Pressure); |
||
34 | dps.getAltitude(&Altitude); |
||
35 | |||
36 | Serial.print("Temp(C):"); |
||
37 | Serial.print(Temperature); |
||
38 | Serial.print(" Alt(cm):"); |
||
39 | Serial.print(Altitude); |
||
40 | Serial.print(" Pressure(Pa):"); |
||
41 | Serial.println(Pressure); |
||
42 | } |
||
43 | |||
44 | void showall(void) { |
||
45 | Serial.println("Current BMP085 settings"); |
||
46 | Serial.println("=========================================================="); |
||
47 | Serial.print("device address = 0x"); |
||
48 | Serial.println(dps.getDevAddr(), HEX); |
||
49 | Serial.print("Mode = "); |
||
50 | switch (dps.getMode()) { |
||
51 | case MODE_ULTRA_LOW_POWER: |
||
52 | Serial.println("MODE_ULTRA_LOW_POWER"); |
||
53 | break; |
||
54 | case MODE_STANDARD: |
||
55 | Serial.println("MODE_STANDARD"); |
||
56 | break; |
||
57 | case MODE_HIGHRES: |
||
58 | Serial.println("MODE_HIGHRES"); |
||
59 | break; |
||
60 | case MODE_ULTRA_HIGHRES: |
||
61 | Serial.println("MODE_ULTRA_HIGHRES"); |
||
62 | break; |
||
63 | } |
||
64 | } |
||
65 | |||
66 | void dumpRegisters() { |
||
67 | byte ValidRegisterAddr[]={0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xF6,0xF7,0xF8,0xF9}; |
||
68 | byte _b, i, totregisters = sizeof(ValidRegisterAddr); |
||
69 | Serial.println("---dump start---"); |
||
70 | Serial.println("Register address|Register data"); |
||
71 | Serial.println("Reg.address(hex,dec) Reg.data(bin,hex,dec)"); |
||
72 | for (i=0;i<totregisters;i++){ |
||
73 | Serial.print("0x"); |
||
74 | Serial.print(ValidRegisterAddr[i], HEX); |
||
75 | Serial.print(","); |
||
76 | Serial.print(ValidRegisterAddr[i], DEC); |
||
77 | Serial.print(","); |
||
78 | dps.readmem(ValidRegisterAddr[i], 1, &_b); |
||
79 | Serial.print("b"); |
||
80 | print_bits(_b); |
||
81 | Serial.print(",0x"); |
||
82 | Serial.print(_b,HEX); |
||
83 | Serial.print(","); |
||
84 | Serial.println(_b,DEC); |
||
85 | } |
||
86 | Serial.println("---dump end---"); |
||
87 | } |
||
88 | |||
89 | void print_bits(byte val){ |
||
90 | int i; |
||
91 | for(i=7; i>=0; i--) |
||
92 | Serial.print(val >> i & 1, BIN); |
||
93 | } |
||
94 | /* void print_unit16(uint16_t val){ |
||
95 | int i; |
||
96 | for(i=15; i>=0; i--) |
||
97 | Serial.print(val >> i & 1, BIN); |
||
98 | } |
||
99 | */ |