eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziałająca biblioteka do BMP085Re: Działająca biblioteka do BMP085
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!wsisiz.edu.pl!.POSTED!not-for-mail
    From: Atlantis <m...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Działająca biblioteka do BMP085
    Date: Thu, 24 Apr 2014 16:26:45 +0200
    Organization: http://www.wit.edu.pl
    Lines: 27
    Message-ID: <ljb6vm$mdt$1@portraits.wsisiz.edu.pl>
    References: <lj8s5v$q9a$1@portraits.wsisiz.edu.pl>
    <lj9clo$e2i$1@portraits.wsisiz.edu.pl> <lj9ig7$tij$1@dont-email.me>
    NNTP-Posting-Host: cbw225.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    X-Trace: portraits.wsisiz.edu.pl 1398349622 22973 83.30.120.225 (24 Apr 2014 14:27:02
    GMT)
    X-Complaints-To: a...@w...edu.pl
    NNTP-Posting-Date: Thu, 24 Apr 2014 14:27:02 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
    Thunderbird/24.4.0
    In-Reply-To: <lj9ig7$tij$1@dont-email.me>
    X-Enigmail-Version: 1.6
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:663862
    [ ukryj 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: