eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziałająca biblioteka do BMP085
Ilość wypowiedzi w tym wątku: 28

  • 11. Data: 2014-04-24 20:04:54
    Temat: Re: Działająca biblioteka do BMP085
    Od: "Pszemol" <P...@P...com>

    "Atlantis" <m...@w...pl> wrote in message
    news:ljb6vm$mdt$1@portraits.wsisiz.edu.pl...
    > W dniu 2014-04-24 01:31, Pszemol pisze:
    >
    >> Podejrzewałbym następujące linie Twojego kodu:
    >>
    >> 1) itoa(pressure, result, 10);
    >
    > Dokładnie, ta diagnoza okazała się być poprawną. Najpierw nie
    > zauważyłem, że itoa() przyjmuje short inta, a potem przeoczyłem literkę
    > "l" w tokenie obsługującym przesyłaną wartość w sprintf_P. Zaowocowało
    > to takim samym błędem.
    >
    > Teraz wszystko działa, otrzymuję ciśnienie o prawdopodobnej wartości.

    No to fajnie :-)) Cieszę się, że mi kryształowa kula wciąż działa dobrze ;-)

    > Jeśli chodzi o temperaturę, to zastosowana biblioteka zwraca ją jako
    > double. Myślę, że nie będę się już bawił w jej przerabianie, zresztą
    > miło byłoby, gdyby wynik był zwracany w normalnych jednostkach, a nie
    > 0,1 stopnia C.
    >
    > Włączanie operacji zmiennoprzecinkowych w stdio.h raczej nie chodzi w
    > grę. Nie dosyć, że kod od tego tyje, to jeszcze zużywane są cykle
    > procesora.
    >
    > Dobrze pamiętam tę sztuczkę?
    >
    > double temperature = bmp085_gettemperature();
    > int16_t intpart = (int16_t)temperature;
    > int16_t decpart = ((int16_t)(temperature*2)%2);
    > sprintf_P(pAnswer, PSTR("+TEMP: %d.%d\r\n"), intpart, decpart);

    Hm... Sprawdźmy na szybko... :-)

    Temperatura pokojowa, załóżmy 21,563C.
    Mamy więc wartość zmiennej 'temperature' w dziesiątych Celciusza: 215.63
    A więc wartość intpart jest automagicznie 215, tu OK.
    Wartość decpart obliczamy, w kolejności, mnożąc 215.63*2 = 431.26
    Teraz rzutujemy takiego doubla do inta, mamy 431.
    Reszta z dzielenia tego 431 przez 2 wyjdzie nam 1.
    Czyli sprintf wyświetli 215.1 zamiast 215.63 - kiepsko.

    Lepiej chyba zrobić tak:
    double dblTemperature = bmp085_gettemperature();
    int iTemperature = ( dblTemperature < 0 ) ? dblTemperature - 0.5 :
    dblTemperature + 0.5;
    sprintf(pAnswer, "+TEMP: %d.%d\r\n"), iTemperature, iTemperature%10);

    Podstawmy nasz przykład z dblTemperature = 215.63.
    iTemperature = (int)(216.13);
    Zatem
    iTemperature = 216

    Dla wartości z przedziału < xx.5, np dblTemperature = 215.33.
    iTemperature = (int)(215.83);
    Zatem
    iTemperature = 215

    Dla temperatur ujemnych, np dblTemperature = -215.63.
    iTemperature = (int)(-216.13);
    Zatem
    iTemperature = -216

    Ale nie bardzo rozumiem czemu skoro już masz typ zmiennej double
    w swoim kodzie, a więc musiałeś włączyć takie liczby, nie?
    Czemu więc nie zrobisz po prostu tak:

    double dblTemperature = bmp085_gettemperature();
    sprintf_P(pAnswer, PSTR("+TEMP: %.1f\r\n"), dblTemperature/10.0);

    I od razu uwaga, pewnie zauważyłeś dodałem przedrostki oznaczające
    typ zmiennej... Tak się po prostu łatwiej czyta kod, zwłaszcza jak używasz
    zmiennych o bardzo różnych typach które dawałyby niebezpieczne efekty
    przy cichym (domyślnym) rzutowaniu przez kompilator...
    Takie przedrostki to popularna konwencja zwana "notacją węgierską",
    warto się jej od razu nauczyć i trzymać nawet w małych programach
    a jak wejdzie Ci w nawyk to będziesz miał później jak znalazł ;-)
    http://pl.wikipedia.org/wiki/Notacja_w%C4%99gierska


  • 12. Data: 2014-04-24 21:01:00
    Temat: Odp: Działająca biblioteka do BMP085
    Od: Sylwester Łazar <i...@a...pl>

    Ładnie chłopcy pomujecie ten produkt :-)
    No muszę przyznać, że zupełny profesjonalizm!
    I są gotowe przykłady i miła obsługa...

    Jednak dorzuciłbym ten klaser:
    http://www.kamami.pl/index.php?ukey=product&productI
    D=203517
    To jest niezwykle ciekawa rzecz i cena niemal ta sama.
    Poważnie piszę.
    S.


  • 13. Data: 2014-04-24 21:01:53
    Temat: Odp: Działająca biblioteka do BMP085
    Od: Sylwester Łazar <i...@a...pl>

    Ładnie chłopcy pompujecie ten produkt :-)
    Muszę przyznać, że zupełny profesjonalizm!
    I są gotowe przykłady i miła obsługa...

    Jednak dorzuciłbym ten klaser:
    http://www.kamami.pl/index.php?ukey=product&productI
    D=203517
    To jest niezwykle ciekawa rzecz i cena niemal ta sama.
    Poważnie piszę.
    S


  • 14. Data: 2014-04-24 21:05:14
    Temat: Re: Działająca biblioteka do BMP085
    Od: Pszemol <P...@P...com>

    Sylwester Łazar <i...@a...pl> wrote:
    > Ładnie chłopcy pompujecie ten produkt :-)
    > Muszę przyznać, że zupełny profesjonalizm!
    > I są gotowe przykłady i miła obsługa...

    A Ty znowu zapomniałeś dziś zażyć lekarstwa i masz te swoje chore urojenia?
    ;-)


  • 15. Data: 2014-04-24 21:10:13
    Temat: Re: Działająca biblioteka do BMP085
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Pszemol <P...@P...com> napisał(a):
    > Podał przecież... Cytuję:
    > "że wartość ciśnienia jest nieprawidłowa - wychodzi jakieś 300 HPa..."

    Nie podał. Pytałem o wartości trzech bajtów odebranych po I2C, a nie końcowy
    wynik obliczeń.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 13 days, 19 hours, 23 minutes and 58 seconds


  • 16. Data: 2014-04-24 21:14:31
    Temat: Odp: Działająca biblioteka do BMP085
    Od: Sylwester Łazar <i...@a...pl>

    > > Ładnie chłopcy pompujecie ten produkt :-)
    > > Muszę przyznać, że zupełny profesjonalizm!
    > > I są gotowe przykłady i miła obsługa...
    >
    > A Ty znowu zapomniałeś dziś zażyć lekarstwa i masz te swoje chore
    urojenia?
    > ;-)
    Dlaczego jesteś taki szorstki?
    Wolę, żebys tutaj się udzielał niż w wątku ze zwykłymi życzeniami, który
    dzięki Tobie rozrósł się do ćwierć tysiąca postów (!!!).
    Doceń to, jak ja doceniam Twoją pracę.
    S.




  • 17. Data: 2014-04-24 21:28:44
    Temat: Re: Działająca biblioteka do BMP085
    Od: Pszemol <P...@P...com>

    Sylwester Łazar <i...@a...pl> wrote:
    >>> Ładnie chłopcy pompujecie ten produkt :-)
    >>> Muszę przyznać, że zupełny profesjonalizm!
    >>> I są gotowe przykłady i miła obsługa...
    >>
    >> A Ty znowu zapomniałeś dziś zażyć lekarstwa i masz te swoje chore urojenia?
    >> ;-)
    > Dlaczego jesteś taki szorstki?

    Zgrywasz niewiniątko? Oskarżasz mnie tu znowu o jakies pompowanie
    produktu... Nawiazujesz do tych swoich wcześniejszych urojeń o tym że ja
    niby jakimś sprzedawcą części itp, itd... Weź przestań bo tylko
    niepotrzebny swąd robisz takimi wypowiedziami!

    > Wolę, żebys tutaj się udzielał niż w wątku ze zwykłymi życzeniami, który
    > dzięki Tobie rozrósł się do ćwierć tysiąca postów (!!!).

    Ty narzekasz?? Ty?? Gdyby nie Twoje nachalne kontynuacje życzeń i wpychanie
    sie na tą grupę pogróżkami religijnymi to w ogóle by tego wątka nie było...
    Pij więc piwo które sobie sam naważyłeś! :-)


  • 18. Data: 2014-04-24 21:28:45
    Temat: Re: Działająca biblioteka do BMP 085
    Od: Pszemol <P...@P...com>

    "Grzegorz Niemirowski" <g...@p...onet.pl> wrote:
    > Pszemol <P...@P...com> napisał(a):
    >> Podał przecież... Cytuję:
    >> "że wartość ciśnienia jest nieprawidłowa - wychodzi jakieś 300 HPa..."
    >
    > Nie podał. Pytałem o wartości trzech bajtów odebranych po I2C, a nie
    > końcowy wynik obliczeń.


    Twoja kryształowa kula jest zepsuta...
    Mojej wystarczyło to co podał :-D


  • 19. Data: 2014-04-24 21:31:48
    Temat: Re: Działająca biblioteka do BMP 085
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Pszemol <P...@P...com> napisał(a):
    > Twoja kryształowa kula jest zepsuta...
    > Mojej wystarczyło to co podał :-D

    Zgadza się :) Ja się skupiłem na samym pobieraniu danych po I2C, a Ty się
    prawidłowo domyśliłeś, że problem jest znacznie później, przy prezentacji.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 13 days, 19 hours, 43 minutes and 31 seconds


  • 20. Data: 2014-04-24 23:15:13
    Temat: Re: Działająca biblioteka do BMP 085
    Od: Pszemol <P...@P...com>

    "Grzegorz Niemirowski" <g...@p...onet.pl> wrote:
    > Pszemol <P...@P...com> napisał(a):
    >> Twoja kryształowa kula jest zepsuta...
    >> Mojej wystarczyło to co podał :-D
    >
    > Zgadza się :) Ja się skupiłem na samym pobieraniu danych po I2C, a Ty się
    > prawidłowo domyśliłeś, że problem jest znacznie później, przy prezentacji.


    Dużo łatwiej byłoby pomóc gdyby proszący o pomoc napisali ciut więcej niż
    im się wydaje niezbędne...
    Ale z drugiej strony gdy się uda poprawnie odgadnąć przyczynę problemu przy
    małej ilości podpowiedzi to potem satysfakcja większa :-)

strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: