Hallo,
ich schreibe gerade eine Bibliothek für den BMP085. Es funktioniert auch
schon alles bis auf eine Sache.
Ich wollte zum Schluss noch die delays für das Warten bis Ende
Konvertierung (ADC BMP085) durch die Abfrage des EOC Pins ersetzten.
Leider habe ich nun festgestellt, dass der EOC-Pin des BMP085 immer auf
High liegt und nicht wie im Datenblatt steht während der Konvertierung
auf Low geschaltet wird.
Hättet ihr eine Idee an was das liegen kann.
Habe schon versucht mit und ohne internen Pullup (Atmega32). Leider
keine immer das Gleiche.
1 | .
|
2 | .
|
3 | .
|
4 | //Send Stop on the Bus
|
5 | if (*error_code==0){
|
6 | *error_code=i2cSendStop();
|
7 | }
|
8 |
|
9 | while(!(PINC & (1<<PC2))){
|
10 | _delay_us(1);
|
11 | };
|
12 |
|
13 | /*_delay_ms(16);*/ // min time is 15ms
|
14 |
|
15 | if (*error_code==0){
|
16 | pressure = bmp085ReadShort(0xF6,error_code);
|
17 | pressure = pressure << 8;
|
18 | pressure = pressure >> (8-OSS);
|
19 | }
|
20 | .
|
21 | .
|
22 | .
|
Könnte es sein, dass der Sensor beim löten etwas abbekommen hat. Mit
delay funktioniert er allerdings ohne Probleme.
Wäre sehr dankbar, falls jmd. noch eine Idee hätte was ich probieren
könnte. (Ich leider nur Multimeter keine Oszi)
Vielen Dank im Voraus!
Beste Grüße,