-
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
- Jaka myjka ultradźwiękowa?
- 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
Najnowsze wątki
- 2026-01-08 Dlaczego wrzucenie szkolnego krzyża do śmieci to zbrodnia mniejsza od zgaszenia sejmowej menory?
- 2026-01-08 NR 5G -- mity, hity, kity, bez satelity...
- 2026-01-07 Oszustwa w go go
- 2026-01-07 Jaka myjka ultradźwiękowa?
- 2026-01-07 POCO
- 2026-01-07 Kraków => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Servi
- 2026-01-07 Kraków => Microsoft Dynamics AX/365 SCM Consultant - Service & Suppor
- 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




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