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
Lesezeichen