Hallo seid ihr noch da?
Ich fummle nun schon einige Stunden rum aber es funktioniert einfach nicht.
DS1 und DS2 zeigen irgendwas an (85C+67C) DS3 und 4 sind 0.
Code:$regfile = "m8def.dat" $crystal = 14745600 'Externes Quarz 14,7456 Mhz 'Achtung: damit der ext. Quarz aktiv wird => die Fusebits entsprechend einstellen. 'Extern Cristal , bei mir alle Bits = 111 111 $baud = 9600 '/// LCD- DISPLAY 4x20 'LCD im 4Bit I/O Mode Config Lcd = 20 * 4 Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 Config Lcdpin = Pin , Db7 = Portd.5 , E = Portd.7 , Rs = Portd.6 Cursor Off Noblink Cls ' Pin für 1wire Schnittstelle festlegen. => DS1820 am Port C.5 Config 1wire = Portc.5 Dim Ds1820id(32) As Byte 'Die Adresse aller meiner DS1820 die ich vorher ausgelesen habe: Ds1820id(1) = &H10 'Seriennummer 1. DS1820 Ds1820id(2) = &H6A Ds1820id(3) = &HE8 Ds1820id(4) = &H5F Ds1820id(5) = &H01 Ds1820id(6) = &H08 Ds1820id(7) = &H00 Ds1820id(8) = &H8C Ds1820id(9) = &H10 'Seriennummer 2. DS1820 Ds1820id(10) = &H8B Ds1820id(11) = &H23 Ds1820id(12) = &H25 Ds1820id(13) = &H01 Ds1820id(14) = &H08 Ds1820id(15) = &H00 Ds1820id(16) = &H73 Ds1820id(17) = &H10 'Seriennummer 3. DS1820 Ds1820id(18) = &H7B Ds1820id(19) = &HD6 Ds1820id(20) = &H60 Ds1820id(21) = &H01 Ds1820id(22) = &H08 Ds1820id(23) = &H00 Ds1820id(24) = &H14 Ds1820id(25) = &H10 'Seriennummer 4. DS1820 Ds1820id(26) = &H13 Ds1820id(27) = &HFD Ds1820id(28) = &H5F Ds1820id(29) = &H01 Ds1820id(30) = &H08 Ds1820id(31) = &H00 Ds1820id(32) = &H2C Dim Sc(32) As Byte '???? Dim T1 As Integer Dim T2 As Integer Dim T3 As Integer Dim T4 As Integer Dim I As Byte Dim Id As Byte Cls ' Clear LCD Do 'Alle angeschlossenen DS1820 zum Messen veranlassen 1wreset '1Wire Reseten 1wwrite &H55 'MATCHROM=>Adress.den DS1820 anhand des ROM Inhaltes 1wwrite Ds1820id(i) , 8 '8 Byte ID wird uebertragen Waitus 200 For Id = 1 To 25 Step 8 'ID für alle 4 DS1820 1,9,17,25 1wreset '1Wire Reseten 1wwrite &H55 'MATCHROM=>Adress.den DS1820 anhand des ROM Inhaltes 1wwrite Ds1820id(id) , 8 '8 Byte ID wird uebertragen 1wwrite &HBE 'READ SCATCHPAD => Liest alle Bytes des SP Memorys Sc(1) = 1wread(9) Next Id T1 = Makeint(sc(1) , Sc(2)) 'komprimiert zwei Bytes in die Integervariable T T2 = Makeint(sc(9) , Sc(2)) T3 = Makeint(sc(17) , Sc(2)) T4 = Makeint(sc(25) , Sc(2)) 'Die Nachkommastelle entfernen T1 = T1 / 2 T2 = T2 / 2 T3 = T3 / 2 T4 = T4 / 2 'Temperatur in ganzen Grad ausgeben Locate 1 , 11 Lcd "T1=" ; T1 ; " C" ' Anzeige erfolgt so: T1=23 C Locate 2 , 11 Lcd "T2=" ; T2 ; " C" ' Anzeige erfolgt so: T1=23 C Locate 3 , 11 Lcd "T3=" ; T3 ; " C" ' Anzeige erfolgt so: T1=23 C Locate 4 , 11 Lcd "T4=" ; T4 ; " C" ' Anzeige erfolgt so: T1=23 C 'Ausgabe alle 0,5 Sekunden Waitms 500 Loop End
Gruß
Hans







Zitieren

Lesezeichen