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

Konwersja typów zmiennych czyli termometr DS18B20, BASCOM

Wersik 21 Gru 2007 21:06 2613 2
REKLAMA
  • #1 4611718
    Wersik
    Poziom 12  
    Posty: 55
    Pomógł: 1
    Ocena: 1
    Witam. Mam termometr na Atmedze8, program napisany przez kolegę Ducha. Chciałbym dodać funkcję zapisu do eepromu najniższej zarejestrowanej temperatury przez termometr, lecz nie jest to możliwe ponieważ ostateczny format temperatury zapisywany jest w zmiennej typu string. Program ma porównywać, czy aktualna temperatura jest mniejsza od zapisanej w eepromie, a jeśli tak, to ma ją zastąpić aktualną. Porównywanie musi się tyczyć też ujemnych temperatur.

    Czy istnieje jakiś sposób, aby ostateczną zmienną 'Ss' (string) zapisać w zmiennej typu Single (lub innej?) aby umozliwic porównanie jej z tą zapisaną w eepromie? A może ktoś zna inną metodę na rozwiązanie tego problemu?

    Oto fragment odpowiadający za odczyt temperatury :
    
    
    
    Dim I1 As Integer , Ss As String * 6
    Dim I2 As Integer
    
    Dim Dsid1(8) As Byte
    Dim Dsid2(8) As Byte
    Dim B As Byte                                     
    Dim W As Byte            
    
      1wreset
       1wwrite &H55
       1wverify Dsid1(1)              'wysyłamy adres pierwszego czujnika
       1wwrite &HBE
       I1 = 1wread(2)
    '---------------------------------
       1wreset
       1wwrite &H55
       1wverify Dsid2(1)             'wysylam adres drugiego czujnika
       1wwrite &HBE
       I2 = 1wread(2)
    '--------konwersja temp dla wszystkich dsow
       1wreset
       1wwrite &HCC
       1wwrite &H44
    Waitms 750
    
       I1 = I1 * 10
       I1 = I1 / 16
       'If I1 > 0 Then Cls                                      
       Ss = Str(i1)
       Ss = Format(ss , " 0.0")
       Locate 1 , 1                                             
       Lcd "Zew " ; Ss ; Chr(0) ;


    Pozdrawiam, Marek
  • REKLAMA
  • Pomocny post
    #2 4611885
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Wersik napisał:
    ...Czy istnieje jakiś sposób, aby ostateczną zmienną 'Ss' (string) zapisać w zmiennej typu Single (lub innej?) aby umozliwic porównanie jej z tą zapisaną w eepromie? A może ktoś zna inną metodę na rozwiązanie tego problemu?

    Z Twojej wypowiedzi wynika , że nie wiele masz wspólnego z programowaniem uC - ale mniejsza z tym.
    Zmienna string jest potrzebna wyłącznie po to , by ją sformatować do postaci ułamka dziesiętnego i wyświetlić ją na LCD.Natomiast wartość temperatury w postaci ... że tak powiem cyfrowej , znajduje sie w zmiennej I1 i tę wartość możesz zapisać w eepromie , oraz porównywać z inną.

    Piotrek
  • #3 4612376
    Wersik
    Poziom 12  
    Posty: 55
    Pomógł: 1
    Ocena: 1
    zumek napisał:

    Z Twojej wypowiedzi wynika , że nie wiele masz wspólnego z programowaniem uC.


    Tak się składa.

    zumek napisał:

    wartość temperatury w postaci ... że tak powiem cyfrowej , znajduje sie w zmiennej I1 i tę wartość możesz zapisać w eepromie , oraz porównywać z inną.


    Dzięki, pomogło.
REKLAMA