eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziałająca biblioteka do BMP085Re: Działająca biblioteka do BMP085
  • Data: 2014-04-24 16:26:45
    Temat: Re: Działająca biblioteka do BMP085
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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.

    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);

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: