Hallo!
Ich habe einen DS1820 an meinem ATmega 32 hängen. Der Sensor wird
ausgelesen, allerdings bringt er erst nach dem zweiten mal Auslesen
einen korrekten Temperaturwert. Hier der Code:
1 | 1wreset
|
2 | 1wwrite &HCC
|
3 | 1wwrite &H44
|
4 | 1wreset
|
5 | 1wwrite &HCC
|
6 | 1wwrite &HBE
|
7 | Ar(1) = 1wread()
|
8 | Ar(2) = 1wread()
|
9 |
|
10 | Waitms 150
|
11 |
|
12 | Vorzeichen = Ar(2) And 1
|
13 | If Vorzeichen = 1 Then
|
14 | Toggle Ar(1)
|
15 | Ar(1) = Ar(1) + 1
|
16 | Temp = Ar(1) / 2
|
17 | Else
|
18 | Temp = Ar(1) / 2
|
19 | End If
|
Mir reicht eine Genauigkeit von 0.5°C, aber ich brauche auch negative
Temperaturen. Ist der Code so richtig? Warum liefert mir der Sensor erst
nach dem zweiten Durchlauf der Routine einen richtigen Wert?
Danke schonmal.
Karl