watterott ;title =
Ergebnis 1 bis 1 von 1

Thema: MIN-MAX-Temperatur

  1. #1
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    371

    MIN-MAX-Temperatur

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	min-max.JPG 
Hits:	17 
Größe:	88,3 KB 
ID:	265

    PHP-Code:
    '(
    Copyright bascom-forum.de (C) [2009]  [DON]
    Für dieses Programm besteht keinerlei GARANTIE.
    Dies ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.
    Der Code darf nicht in andere Forum gepostet werden.
    Der Code darf auf eure Homepage erscheinen wenn ihr den Autoren
    und den Link von Bascom-forum.de  erwähnt.

    '
    )



    $regfile "m8def.dat"
    $hwstack 82
    $framesize 
    68
    $swstack 
    68
    $crystal 
    16000000 'Quarzfrequenz
    Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32
    Cls



    Config Portc.1 = Output
    Config Portc.2 = Output
    Config Portc.3 = Output
    Dim ___lcdno As Bit
    Licht Alias Portd.7
    Const An = 1
    Const Aus = 0
    Config Pind.6 = Output       '
    RW=0
    Portd.6 
    0
    Config Pind.7 
    Output
    'Config Portb.0 = Input
    Licht = An
    Config 1wire = Portb.1
    Config Lcdpin = Pin , E = Portc.3 , E2 = Portd.7 , Rs = Portc.2 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5
    Config Lcd = 20 * 4a , Chipset = Ks077
    Config Lcdbus = 4
    Cls
    Initlcd
    Wait 1
    Cursor Off Noblink
    Dim Min1 As Single
    Dim Max1 As Single
    Dim Raus As Single
    Dim Ident(8) As Byte
    '
    When used like this DsId(1) = 1wread(8)
    'DsId(1) = family code           'Ds1820 10hDS18B20 28hDs18s20 10h
    'DsId(2)                         '48 Bits SerialLSB
    'DsId(3)
    '
    DsId(4)
    'DsId(5)
    '
    DsId(6)
    'DsId(7)                         '48 Bits SerialMSB
    'DsId(8)                         '8 CRC

    Dim Datenarry
    (9) As Byte       'Scratchpad 0-8 72 bits incl CRC, explanations for DS18b20
    '
    Sc(1)                           'Temperature LSB
    '
    Sc(2)                           'Temperature MSB
    '
    Sc(3)                           'TH/user byte 1         also SRAM
    '
    Sc(4)                           'TL/user byte 2         also SRAM
    '
    Sc(5)                           'config                 also SRAM    x R1 R0 1 1 1 1 1 - the r1 r0 are config for resolution - write FF to byte for 12 bit - others dont care
    '
    Sc(6)                           'res
    '
    Sc(7)                           'res
    '
    Sc(8)                           'res
    '
    Sc(9)                           '8 CRC

    '
    DALLAS DS18B20 ROM and scratchpad commands''''''''''''''''''''''''''1wwrite....
    '&H 33  read rom - single sensor
    '
    &H 55  match romfollowed by 64 bits
    '&H CC  skip rom
    '
    &H EC  alarm search  ongoining alarm >TH <TL
    '&H BE  read scratchpad
    '
    &H 44  convert T

    Cls
    Wait 2
    Ident
    (1) = 1wsearchfirst()       '64 Bit Nr einlesen jeder Dalas Sensor hat
    eine andere Nr.
    Wait 1
    Cls

    'Init
    Min1 = 999
    Main loop
    Do
       
    Gosub Lesen      ' "Convert ALL T on the 1w-bus"
                                                      '
    if you use 2-wirecould be reduced to 200us

       1wverify Ident
    (1'Issues the "Match ROM "
       Locate 1 , 1
       If Err = 1 Then
          Lcd "ID-Nicht gefunden "       '
    Err if something is wrong
       
    Elseif Err 0 Then
          Locate 1 
    1
          Lcd 
    "                    "
          
    Waitms 800      'Überspringe ROM
          1wreset
          1wwrite &HCC    '
    lcd " Sensor found"
          
    1wwrite &HBE
          Datenarry
    (1) = 1wread(9)       'read bytes into array
          If Datenarry(9) = Crc8(datenarry(1) , 8) Then
             Gosub Wandler   ' 
    Dg Decigrades(sc(9))
             If 
    Min1 Raus Then Min1 Raus
             
    If Max1 Raus Then Max1 Raus
             Locate 1 
    1
             Lcd 
    "Min " Fusing(min1 "#.#") ; Chr(0) ; "C"
             
    Locate 2 1
             Lcd 
    "Max " Fusing(max1 "#.#") ; Chr(0) ; "C"
          
    End If
       
    End If
       
    Locate 4 1
       Lcd 
    "Temp: " Fusing(raus "#.#") ; Chr(0) ; "C"
       
    Wait 1
    Loop
    End
    Lesen
    :
       
    1wreset          ' reset the bus
       1wwrite &HCC     ' 
    skip rom
       1wwrite 
    &H44     ' Convert T
    Return
    Wandler:

       Raus = Datenarry(2)
       Shift Raus , Left , 8
       Raus = Raus + Datenarry(1)
       If Raus => 2048 Then

          Raus = Raus / 16
          Raus = Raus - 4096       '
    Für negative Temperaturen
       
    Else

          
    Raus Raus 16
       End 
    If
    Return 
    Geändert von DON (05.12.2016 um 09:31 Uhr)
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •