logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8][BASCOM] - Termometr brak minusa przy ujemnych temperaturach DS18(s)20

grupiak 14 Lut 2013 20:55 1668 6
  • #1 11935487
    grupiak
    Poziom 2  
    Witam

    Mam taki program który wyświetla temperaturę potocznie zwany termometrem.
    Problem w tym ze nie wyświetla mi znaku minus przy ujemnych temperaturach. Po wsadzeniu do zamrażarki mija temperaturę 0 st C i idzie dalej niby w dół, ale bez minusa. Przeglądałem sporo źródeł na elektrodzie i w innych miejscach i nie mogę sobie z tym poradzić.

    Oto kod:

    Kod: text
    Zaloguj się, aby zobaczyć kod



    Próbowałem np coś takiego ale nie działa

    zaraz po obliczeniu temperatury
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Bardzo proszę o pomoc tym bardziej ze termometr przy tych obliczeniach działa dobrze sprawdzałem na wrzącej wodzie pokazuje równo 100 st c jedynie co ten minus mnie dobija.

    Pozdrawiam
  • #2 11935520
    BlueDraco
    Specjalista - Mikrokontrolery
    Temperatura jest podawana przez DS18xx w kodzie U2. Zacznij od określenia, jaki masz dokładnie typ układu - różne wersje mają nieco różne formaty temperatury. Potem przeczytaj temperaturę do zmiennej 16-bitowej ze znakiem. Jeśli jest ujemna, zaneguj ją, wyświetl minus, a potem wyświetl jej zanegowaną (czyli już dodatnią) wartość.

    Prawdopodobnie będzie to coś takiego

    temp = I(1) / 2;
    if temp < 0 then
    ' wyświetl minus
    temp = - temp
    end if
    ' wyswietl temp
  • #3 11935639
    grupiak
    Poziom 2  
    BlueDraco napisał:
    Prawdopodobnie będzie to coś takiego

    temp = I(1) / 2;
    if temp < 0 then
    ' wyświetl minus
    temp = - temp
    end if
    ' wyswietl temp



    To już sprawdzałem i wywala mi błąd przy kompilowaniu:
    invalid datatype [[0010]]

    mój czujnik to DS1820
  • #4 11935713
    BlueDraco
    Specjalista - Mikrokontrolery
    To zrób tak, żeby nie wywalało błędu i będzie dobrze. Zapewne chodzi o uzgodnienie typów danych.
  • #5 11935999
    Dawid WAT
    Poziom 14  
    Witam
    ja bym to zrobił po prostu tak:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam Dawid
  • #6 11936680
    Konto nie istnieje
    Poziom 1  
  • #7 11936717
    grupiak
    Poziom 2  
    Dawid WAT napisał:
    Witam
    ja bym to zrobił po prostu tak:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam Dawid


    Dziękuje wszystkim za odpowiedzi. W moim przypadku pomogła pomoc od Dawida (mojego imiennika zresztą).

    Pozdrawiam wszystkich
REKLAMA