-
Data: 2014-04-23 19:10:08
Temat: Działająca biblioteka do BMP085
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Próbuję właśnie uruchomić BMP085 w jednym ze swoich urządzeń i powoli
zaczynam z tego powodu siwieć. ;)
Na samym początku, bez większego problemu udało mi się znaleźć taką oto
bibliotekę w Sieci:
http://www.sicklinger.com/en/component/remository/Mi
crocontroller/ATMEL-AVR-ATMEGA-BMP085-library-in-C/?
Itemid=54
Skompilowała się uruchomiła bez problemu. Wystarczyło właściwie tylko
dodać pliki nagłówkowe do istniejącego projektu. Niestety moja radość
nie trwała długo - okazało się, że wartość ciśnienia jest nieprawidłowa
- wychodzi jakieś 300 HPa...
Pierwsze o czym pomyślałem to uszkodzony czujnik. Wyjąłem więc z
szuflady Arduino i wgrałem ten kod:
https://www.sparkfun.com/tutorials/253
Wszystko ruszyło bez najmniejszego problemu, wartości były prawidłowe (a
przynajmniej prawdopodobne).
Zabrałem się więc za porównywanie kodu zawartego w obydwu bibliotekach.
Odczytywanie danych kalibracyjnych wygląda praktycznie tak samo,
podobnie jak końcowa konwersja.
Jedyny fragment, w którym mógłbym się czegoś dopatrywać to odczyt
wartości ciśnienia ze scalaka. W bibliotece pod AVR wygląda to następująco:
pressure = bmp085ReadShort(0xF6,error_code);
pressure = pressure << 8;
pressure = pressure >> (8-OSS);
Funkcja bmp085ReadShort zwraca uint16_t, a więc czytane są tylko dwa bajty.
Natomiast w kodzie na Arduino znajduje się następujący fragment:
msb = Wire.read();
lsb = Wire.read();
xlsb = Wire.read();
up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8) |
(unsigned long) xlsb) >> (8-OSS);
Jak widać odczytywane są tutaj trzy jednobajtowe (char) zmienne, które
potem są konwertowane do zwracanej wartości unsigned long.
Czy moja dedukcja jest prawidłowa? A może to nie ma nic do rzeczy i
źródła problemu powinienem szukać gdzie indziej?
Następne wpisy z tego wątku
- 23.04.14 19:44 Pszemol
- 23.04.14 19:55 Pszemol
- 23.04.14 23:51 Atlantis
- 24.04.14 01:06 Grzegorz Niemirowski
- 24.04.14 01:31 Pszemol
- 24.04.14 01:34 Pszemol
- 24.04.14 10:32 Elektrolot
- 24.04.14 16:26 Atlantis
- 24.04.14 17:13 Atlantis
- 24.04.14 20:04 Pszemol
- 24.04.14 21:01 Sylwester Łazar
- 24.04.14 21:01 Sylwester Łazar
- 24.04.14 21:05 Pszemol
- 24.04.14 21:10 Grzegorz Niemirowski
- 24.04.14 21:14 Sylwester Łazar
Najnowsze wątki z tej grupy
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
- Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- Microsoft, C/C++ na Rust - news
- Pierwsza mapa kosmosu w 102 długościach fal podczerwieni! To początek nowej ery w astronomii
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- zasilacz
- Zegary DCF
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
Najnowsze wątki
- 2026-01-06 I kolejny
- 2026-01-06 Retro organizer ale współcześnie
- 2026-01-06 Bowling
- 2026-01-06 Cyganie
- 2026-01-06 Rozwód w Santanderze z prostokątną kobietą...
- 2026-01-06 Skąd diody LED 1,5V?
- 2026-01-06 Nowum!!! -- Moje ID
- 2026-01-06 Metoda na fotoradar
- 2026-01-05 I jeszcze jeden
- 2026-01-05 Jaworek;)
- 2026-01-05 Warszawa => Project Manager (AI and innovation) <=
- 2026-01-05 Gdańsk => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2026-01-05 Jeśli nie było "aktu wojny" to była "zorganizowana grupa przestępcza" (terroryści) dokonująca zabójstw?
- 2026-01-05 Walka Lewicy o B2B na etat
- 2026-01-05 zamiana B2B na etat




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]