Hallo,
ich habe ein Problem mehrere Temperatursensoren an meinen Atmega auszulesen. Das Problem beginnt allerdings schon recht früh, dh. das ich an einem Sensor problemlos die Temperatur auslesen kann.Für mehrere Sensoren brauch ich ja die ID um sie zu unterscheiden. Und an dieser Stelle beginnt mein Problem: Er gibt mir keine ID sondern zeigt nur 00 an. Habe es mit einen Sensor probiert. In der einen Zeile zeigt er mir die korrekte Temperatur allerdings funktioniert die ID nicht. Hier das Programm:
Hoffentlich kann mir einer helfen. Vielen Dank schonmal.Code:$regfile = "m8def.dat" $crystal = 8000000 'LCD' Config Lcd = 16 * 2 'LCD-PIN-Belegung' Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 'LCD-BUS, hier vier Ports' Config Lcdbus = 4 'Port der gruenen LED' Config Portc.1 = Output 'Port des ersten Schalters' Config Pinc.0 = Input 'Alias fuer den ersten Schalter' Taster Alias Pinc.0 Dim W As Word Dim Dsid(8) As Byte Dim B As Byte Portc.0 = 1 'Alias fuer die gruene LED' Ledgruen Alias Portc.1 'Gruene LED wird eingeschlatet' Ledgruen = 1 Config 1wire = Portc.5 Dim Ar(2) As Byte , A As Byte , I As Byte , Temperatur As Integer Dim Halb As Byte Cursor Off Cls W = 1wirecount() Dsid(1) = 1wsearchfirst() 1wverify Dsid(1) Do Home Lcd "Temp:" Wait 1 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE For I = 1 To 2 Ar(i) = 1wread() Next Locate 2 , 1 Temperatur = Ar(1) If Ar(2) > 0 Then Temperatur = 0 Else Shift Temperatur , Right Lcd Temperatur ; "." ; Halb = Ar(1) And 1 If Halb = 1 Then Lcd "5" Else Lcd "0" Lcd " C" ; W ; For B = 1 To 8 Home Lcd Hex(dsid(b)); Lcd " "; Next B Waitms 1000 Loop
Lesezeichen