DS1820 will nicht an Atmega32

OP #599724
Lesenswert?

Also der sensor funktioniert an einen Atmega8 bloß halt nicht am 
Atmega32 (code ist natürlich an den Atmega32 angepasst worden) aber der 
Ds1820 will halt nicht gehen, bzw wird nicht erkannt.
Woran kann das liegen ?  ist er am falschen Port?? (d.0)
1
$regfile = "m32def.dat"
2
$crystal = 16000000
3

4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
5
Config Lcd = 16 * 2
6
Config 1wire = Portd.0
7

8
Const Parasitpower = 1
9

10
Const Ds1820 = &H10
11

12
Const Skiprom = &HCC
13
Const Read_rom = &H33
14
Const Convertt = &H44
15
Const Read_ram = &HBE
16
Const Write_ram = &H4E
17
Const Copy_ram = &H48
18
Const Recall_ee = &HB8
19
Const Read_power = &HB4
20

21
Dim Family_code As Byte
22
Dim Serial_number(6) As Byte
23
Dim Crc As Byte
24
Dim Scratch(9) As Byte
25

26
Dim I As Byte
27
Dim Temp As Word
28
Dim Temp1 As Integer
29
Dim Stemp As Single
30

31
Do
32
   1wreset
33
   If Err = 1 Then Lcd "Ibutton Error"
34

35
   1wwrite Read_rom
36

37
   Family_code = 1wread()
38
   For I = 1 To 6
39
      Serial_number(i) = 1wread()
40
   Next
41
   Crc = 1wread()
42
   If Family_code <> Ds1820 Then Exit Do
43

44
   1wwrite Convertt
45

46
   #if Parasitpower
47
      Wait 2
48
   #else
49
      Do
50
         Temp = 1wread()
51
      Loop Until Temp = &HFF
52
   #endif
53

54
   1wreset
55
   If Err = 1 Then Lcd "Ibutton Error"
56

57
   1wwrite Skiprom
58
   1wwrite Read_ram
59
   For I = 1 To 9
60
      Scratch(i) = 1wread()
61
   Next
62

63
   Temp = Scratch(2)
64
   Shift Temp , Left , 8
65

66
   Temp = Temp + Scratch(1)
67
   Temp1 = Temp
68

69
   Temp1 = Temp1 / 2
70
   Lcd Temp1
71

72
   Stemp = Scratch(8) - Scratch(7)
73
   Stemp = Stemp / Scratch(8)
74
   Stemp = Stemp + Temp1
75
   Stemp = Stemp - 0.25
76
   Lowerline
77
   Lcd Fusing(stemp , "#.##")
78
   Wait 2
79
Loop
80

81
 Lcd "Kein Sensor"
82

83
End

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren