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

Termometr pisany w Bascomie: nie zapamiętuje temp. ujemnej

Michał~88 07 Cze 2006 19:07 1499 2
REKLAMA
  • #1 2707618
    Michał~88
    Poziom 14  
    Posty: 167
    Pomógł: 7
    Ocena: 3
    Witam.
    Mam problem co do mojego programu napisanego w Bascomie.
    Program dotyczy termometra który zapamiętuje dodatnią i ujemną temperaturę. Temperatura jest wyświetlana na LCD.
    Problem jednakże dotyczy zapamiętywania temperatury ujemnej.
    I tu moja prośba by zobaczyć co jest w tym programie nie tak i podsunąc jakieś pomysły.
    Pozdrawiam:D
  • REKLAMA
  • #3 2707892
    Michał~88
    Poziom 14  
    Posty: 167
    Pomógł: 7
    Ocena: 3
    O kurde zapomniałem :D
    Jeszcze raz przepraszam.
    Używam ATTINY 2313 a jako czujnik DS1820
    A tu program:
    Config 1wire = Portd.5 : Dim Odczyt(2) As Byte , A As Byte ,
    Dim T As Integer , Tmin As Integer , Tmax As Integer
    Deflcdchar 1 , 4 , 14 , 21 , 4 , 4 , 4 , 4 , 32
    Deflcdchar 2 , 4 , 4 , 4 , 4 , 21 , 14 , 4 , 32
    Do

    1wreset : 1wwrite &HCC : 1wwrite &HBE 'odczyt z DS1820
    Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty - temperaturę
    T = Odczyt(2) 'starszy bajt temperatury
    Shift T , Left , 8 'przesuń w lewo o 8 miejsc
    T = T + Odczyt(1) 'w zmiennej Integer jest dziwna "ułamkowa" wartość
    Shift T , Right , 1 'zamiast dzielić przez 16 przesuń w prawo
    If T.11 = 1 Then 'jeśli temperatura ujemna
    T = T Or &B1111000000000000 '= &HF000 'uzupełnianie " najstarszych bitów"
    End If
    If T < Tmin Then Tmin = T
    If T > Tmax Then Tmax = T
    Cls : Lcd "T" ; T ; Chr(223) ; "C" 'wyświetl wynik - liczbę całkowitą
    Lowerline : Lcd "T" ; Chr(2) ; Tmin ; Chr(223) ; "C T" ; Chr(1) ; Tmax ; Chr(223) ; "C"
    1wreset ' dopiero teraz daj polecenie konwersji:
    1wwrite &HCC 'polecenie SKIP ROM, bo pojedyncza kostka
    1wwrite &H44 ' dokonaj konwersji - zmierz temperaturę
    Waitms 700 'po cyklu pracy poczekaj
    Loop
REKLAMA