-
Data: 2014-04-24 01:06:10
Temat: Re: Działająca biblioteka do BMP085
Od: "Grzegorz Niemirowski" <g...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Atlantis <m...@w...pl> napisał(a):
> Hmm... Dziwna sprawa. Sądziłem, że winę za taki stan rzeczy ponosi błąd
> w bibliotece. Jednak trafiłem na inną służącą do obsługi BMP085.
> http://davidegironi.blogspot.com/2012/10/avr-atmega-
bmp085-pressure-sensor
> .html#.U1g0nFdpNIJ
> Po podmienieniu plików, dostosowaniu źródeł i wgraniu hex-a okazało się,
> że efekt nie zniknął. Ciągle otrzymuję dziwną wartość ciśnienia.
> Prawdopodobieństwo wystąpienia tego samego błędu w dwóch różnych
> bibliotekach jest niewielkie, więc należy założyć, że błąd tkwi w innym
> miejscu.
> W chwili obecnej procedura wysyłania wyniku wygląda w sposób następujący:
> char result[10];
> int32_t pressure = bmp085_getpressure();
> itoa(pressure, result, 10);
> strcpy_P(pAnswer, PSTR("+PRESS: "));
> strcat(pAnswer, result);
> strcat_P(pAnswer, PSTR("\r\n"));
> Wskaźnik do bufora pAnswer jest następnie przekazywany do funkcji
> zajmującej się wysyłaniem odpowiedzi na zapytania UDP.
> Próbowałem także zastosować stdio:
> printf_P(pAnswer, PSTR("+PRESS: %d\r\n"), bmp085_getpressure());
> Efekt był dokładnie taki sam.
> Ktoś ma jakiś pomysł gdzie mogę zacząć szukać przyczyny, co jeszcze
> ewentualnie mogę sprawdzić?
Zacząłbym od zignorowania bibliotek nietrzymających się dokumentacji BMP085.
A ta mówi, żeby odczytać trzy bajty: najstarszy MSB, młodszy LSB i
najmłodszy XLSB. Są to rejestry F6, F7 i F8. Te bajty są składane w inta, a
potem całość przesuwana jest w prawo o 8-oss, gdzie oss oznacza
over-sampling setting. W ten sposób otrzymujemy nieskompensowaną
temperaturę. Następnie wykonywane są obliczenia kompensacyjne.
A jaki mikrokontroler? Ma JTAG? Jak ma to użyj, bo kombinujesz strasznie
zamiast użyć debuggera. Jak nie ma JTAGa, to użyj czegoś innego, np. portu
szeregowego. Sprawdź jakie wartości masz odczytane w MSB, LSB i XLSB.
Następnie zobacz co robi z nimi kod kompensacyjny. Na oko wygląda dobrze,
ale może gdzieś jest pomieszane signed i unsigned. Prześledź działanie kodu
w trakcie działania. Wrzucając hexy i patrząc na końcowy wynik będzie Ci
bardzo trudno ustalić co się dzieje. Pomóc Ci też jest trudno, jeśli nie
podajesz odczytanych wartości MSB, LSB i XLSB. Ja niestety nie posiadam
BMP085 i nie porównam ze swoim, ale jakbyś podał wartości, to myślę, że
byłoby łatwiej. Mógłbym np. odpalić sobie biblioteki z danymi z Twojego
czujnika. Poza tym wkleiłeś bardzo krótkie fragmenty kodu, np. nie wiadomo
jak Arduino liczy kompensację. Czy też dzielenie robi przesunięciem bitowym?
A może robi normalne dzielenie? Bo to nie jest to samo: patrz przesuwanie
bitów w liczbach ujemnych. I jeszcze jedno: o ile dobrze rozumiem, to żeby
prawidłowo obliczyć ciśnienie, musisz mieć zmierzoną najpierw temperaturę.
Mierzysz ją?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 12 days, 22 hours, 55 minutes and 19 seconds
Następne wpisy z tego wątku
- 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
- 24.04.14 21:28 Pszemol
- 24.04.14 21:28 Pszemol
- 24.04.14 21:31 Grzegorz Niemirowski
- 24.04.14 23:15 Pszemol
Najnowsze wątki z tej grupy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
- Laptop MSI się nie uruchamia.
- Dobra listwa LED (CRI 90-95, bez migotania)
- masowe programowanie AVR
- Fajny pomysł na monitor z klawiaturą
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Aparat, zewnętrzny mikrofon, brum
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
Najnowsze wątki
- 2024-10-18 doładowania 5zł
- 2024-10-17 Prośba o identyfikację komponentu
- 2024-10-17 Warszawa => Expert Recruiter 360 <=
- 2024-10-17 Warszawa => Account Manager - Sprzedaż Usług Rekrutacyjnych <=
- 2024-10-17 Warszawa => Software Engineer .Net <=
- 2024-10-17 Warszawa => Senior SAP HANA Developer <=
- 2024-10-17 Lublin => Spedytor międzynarodowy <=
- 2024-10-17 Olsztyn => Sales Specialist <=
- 2024-10-17 Brat k.o.medianta
- 2024-10-16 Warszawa => Programista Dynamics 365 CRM <=
- 2024-10-16 Jak dobrze zrobić dach drewutni?
- 2024-10-16 Warszawa => Dynamics 365 CRM Developer <=
- 2024-10-16 Wrocław => Key Account Manager <=
- 2024-10-16 imigranci
- 2024-10-16 Warszawa => Key Account Manager <=