-
Data: 2014-04-24 01:31:48
Temat: Re: Działająca biblioteka do BMP085
Od: "Pszemol" <P...@P...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]"Atlantis" <m...@w...pl> wrote in message
news:lj9clo$e2i$1@portraits.wsisiz.edu.pl...
> Ktoś ma jakiś pomysł gdzie mogę zacząć szukać przyczyny,
> co jeszcze ewentualnie mogę sprawdzić?
Wcześniej pisałeś że masz wynik około 300hPa...
Może zamiast 1000hPa czytasz coś jak 344hPa?
Jeśli tak, to stawiam hipotezę, że obcinasz górny bajt
z trzy-bajtowego wyniku...
1000hPa to 100000Pa, czyli w bajtach 0x01 0x86 0xA0.
Jeśli weźmiesz pod uwagę że Twój kod mógł skrócić
long'a do int'a i zamiast 0x186A0 dostaniesz 0x86A0
to uzyskasz wynik 34464, czyli 344,64hPa...
Poszukaj więc w swym kodzie miejsc, gdzie używasz
funkcji oczekującej argumentu typu int (2 bajty) i tam
posyłasz argument typu long (4 bajty) który zostaje przez
kompilator ucięty do oczekiwanych przez funkcję 2 bajtów.
Podejrzewałbym następujące linie Twojego kodu:
1) itoa(pressure, result, 10);
Prototyp funkcji:
char * itoa ( int value, char * str, int base );
Funkcja oczekuje int'a, posyłasz jej argument typu int32.
Bad boy! :-)
2) printf_P(pAnswer, PSTR("+PRESS: %d\r\n"), bmp085_getpressure());
Funkcja printf dekodując format %d szuka na stosie wartości
typu int, co ma dwa bajty a Ty podajesz wartość 4-bajtową.
Zamień ten format %d na %ld, czyli zapisz tą linię tak:
printf_P(pAnswer, PSTR("+PRESS: %ld\r\n"), bmp085_getpressure());
http://www.cplusplus.com/reference/cstdio/printf/
Następne wpisy z tego wątku
- 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
- 25.04.14 08:05 Zbych
Najnowsze wątki z tej grupy
- "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- antena gsm - kabel - antena gsm
- PID - jeszcze raz
- Zlacze w mikrofonie z lat 80-tych
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają