- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 2 von 2

Thema: Temperaturmessung mit DS1820 funktioniert nicht mehr

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.12.2006
    Beiträge
    109

    Temperaturmessung mit DS1820 funktioniert nicht mehr

    Hallo!

    vor 3 Jahren hatte ich mir mal eine Controller besorgt und mit diesem über 4 DS1820 Temperaturen gemessen. Doch heute klappt der Code nicht mehr!

    Hier der Code:

    $regfile = "m8def.dat"
    $crystal = 3686400
    $hwstack = 46
    $swstack = 40
    $framesize = 40

    '**************************Funktionen LCD-Display*******************************
    Config Lcd = 40 * 4
    Config Lcdpin = Pin , Rs = Portb.0 , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , E2 = Portd.7
    Config Lcdbus = 4
    Config Lcdmode = Port

    Config Portb = Output


    Dim ___lcdno As Byte

    ___lcdno = 0
    Initlcd
    Cursor Off
    Cls

    ___lcdno = 1
    Initlcd
    Cursor Off
    Cls
    '**************************Def. allgemeiner Variabeln***************************
    Dim Tempmessstelle(7) As Single

    '*************************Config Timer1*****************************************
    Config Timer1 = Timer , Prescale = 1024 '64 '256 'Konfiguriere Timer1
    Enable Timer1 'schalte den Timer1 ein
    On Timer1 Isr_von_timer1 'verzweige bei Timer1 überlauf zu Isr_von_Timer1
    Enable Interrupts
    Timer1 = 34286 'Timer1 soll schon von 34285 wegzählen 4 sekunden
    '***************************Config 1Wire****************************************

    Config 1wire = Portc.1 'DS1820

    Match_rom Alias &H55
    Read_scratchpad Alias &HBE
    Start_conversion Alias &H44

    Fg Alias 0
    Hg Alias 1
    Rl Alias 2
    Vl Alias 3

    Dim Read_temp As Integer
    Dim Sensor_ids(4) As Byte
    Dim Id As Byte
    Dim Offset As Byte
    Dim Ds_array(7) As Byte
    Dim Bruchteil As Single
    Dim Temperatur As Single
    Dim I As Integer
    '***************************ID 1Wire configurieren******************************
    For Id = 1 To 40 '40 'Einlesen der 5 Sensoren IDs (5*8 Byte)
    I = Id - 1
    Readeeprom Sensor_ids(id) , I
    Next Id
    '***********************************Hauptprogramm* ******************************
    Do

    Loop
    End
    '**********************************1Wire********** ******************************
    1wire:
    For Id = Fg To Vl
    Offset = Id * 8
    Offset = Offset + 1 'Offset geht auf 1, 9, 17, 25 und 33
    1wreset 'hier wird der Temperaturwert eingelesen
    1wwrite Match_rom
    1wwrite Sensor_ids(offset) , 8 '8 Byte ID wird übertragen
    1wwrite Read_scratchpad
    For I = 1 To 7 'nur bis 7, weil 8 und 9 uninteressant
    Ds_array(i) = 1wread()
    Next I
    Read_temp = Makeint(ds_array(1) , Ds_array(2))
    1wreset 'jetzt wird wieder die Konvertierung gestartet
    1wwrite Match_rom
    1wwrite Sensor_ids(offset) , 8
    1wwrite Start_conversion
    Shift Read_temp , Right
    If 127 < Read_temp Then Read_temp = Read_temp - 32768
    Bruchteil = 16 - Ds_array(7)
    Bruchteil = Bruchteil / 16
    Bruchteil = Bruchteil - 0.25


    Temperatur = Read_temp + Bruchteil
    Tempmessstelle(id + 1) = Temperatur

    If Temperatur <> 85.0 Then ' < 80.0 And Temperatur > -20.0 Then
    Tempmessstelle(id + 1) = Temperatur
    End If

    ___lcdno = 0
    Select Case Id
    Case Fg:
    Locate 1 , 1 : Lcd "FG: "
    Locate 1 , 5 : Lcd Fusing(temperatur , "#.#")
    Case Hg:
    Locate 1 , 11 : Lcd "HG: "
    Locate 1 , 14 : Lcd Fusing(temperatur , "#.#")
    Case Rl: 'ausgabe im Display ist dann z.B.
    Locate 2 , 1 : Lcd "VL: "
    Locate 2 , 5 : Lcd Fusing(temperatur , "#.#" )
    Case Vl:
    Locate 2 , 11 : Lcd "RL: "
    Locate 2 , 14 : Lcd Fusing(temperatur , "#.#")
    End Select

    Cursor Off
    Next Id
    Return
    Return

    '**************************Subroutine für Timer1********************************
    Isr_von_timer1: 'ISR von Timer1
    Timer1 = 34286
    Gosub 1wire
    Return


    $eeprom

    Data &H28 , &HA2 , &H75 , &HAA , &H03 , &H00 , &H00 , &HC5 'Ausgelesen mit dem Controller
    Data &H28 , &H25 , &H67 , &HAA , &H03 , &H00 , &H00 , &H55 ' Ausgelesen mit dem Controller
    Data &H10 , &H78 , &H37 , &H39 , &H01 , &H08 , &H00 , &H11 ' nicht mehr angeschlossen
    Data &H10 , &HC0 , &H46 , &H19 , &H01 , &H08 , &H00 , &H67 ' nicht mehr angeschlossen
    Data &H10 , &H56 , &HA3 , &H23 , &H01 , &H08 , &H00 , &H3F ' nicht mehr angeschlossen


    Was ist denn da faslch? Kann mir jemand helfen!? Habe ich ggf. was falsch im Programmer eingestellt?
    Und dann noch. Die Übertragung auf den Controller ist sehr langsam.

    Dank schon einmal
    Martin

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Neutro
    Registriert seit
    28.10.2007
    Ort
    Ostfriesland
    Alter
    44
    Beiträge
    642
    Hast du das evtl mit einer neueren Bascom Version kompiliert als die die du vor drei Jahren hattest?
    Dann kann es schon mal sein das dein "altes" Programm nicht mehr so funktioniert. Das selbe hatte ich vor einiger Zeit auch schon mal.
    Da habe ich dann das Programm noch einmal ganz neu geschrieben und schon schon ging es wieder, warum kann ich dir aber auch nicht sagen.

    Gruß
    Neutro

    PS: Hast du auch einen neuen µC verwendet oder den alten wieder? vielleicht hast du ja die Fusebiteinstellungen vergessen?
    Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
    (Mark Twain)

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 29.08.2011, 17:17
  2. Temperaturmessung mit DS1820 spinnt manchmal
    Von Pöler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 10.11.2008, 21:15
  3. ds1820 funktioniert nicht (anschluss richtig?)
    Von sonium im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 12.09.2007, 03:25
  4. genaue Temperaturmessung mit ds1820
    Von Cooool39 im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 05.07.2007, 20:50
  5. Cybot funktioniert nicht mehr..
    Von 3ul3.de im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 5
    Letzter Beitrag: 02.05.2006, 20:43

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad