Sida 1 av 1

DS18s20, högre upplösnings-algoritm.

Postat: 10 oktober 2005, 23:36:26
av benring
Hej, enligt databladet:

Higher resolutions may be obtained by the following procedure.
First, read the temperature,COUNT_REMAIN, and COUNT_PER_C registers from the scratchpad.
Truncate the 0.5°C bit (the LSB) from the temperature value.
This value is TEMP_READ.
The actual temperature may then be calculated by using the following:


TEMPERATUR=Temp_read - 0,25 + (Count_per_C - Count_Remain / Count_per_C)

Alltså, på ren svenska så skulle jag läsa av tempen + dom andra två.
"Truncate the 0.5°C bit (the LSB) from the temperature value."Betyder att jag ska "skära bort" den biten.
"This value is TEMP_READ." Vilket värde?? Den jag "skar bort" eller det som är kvar?

om jag får "00100101" i tempvärde så ska jag ta bort sista biten?

Ska jag göra om värdet igen till vadå innan jag räknar?

Kan nån hjälpa mig?

Tyvärr ligger elfas sida nere men sök på DS18s20 när den e uppe så ser ni databladet. (Sid 5 av 27, Temperature/Data Relationships Table 2)

Postat: 11 oktober 2005, 00:22:48
av sodjan
Min gissning är :

Den "temp" man får vid en normal avläsning är avrundad till 0.5C.

Testen i databladet beskriver hur man kan ersätta denna avrundade 0.5C med en beräkning utifrån de oavrundade värdena.

> "This value is TEMP_READ." Vilket värde?? Den jag "skar bort" eller det som är kvar?

Tempen i hela grader, decimalerna skall ersättas med resultatet av beräkningen.

"00100101" blir alltså "00010010".

Sen är det väl "bara" att köra med formeln... :-)

Postat: 11 oktober 2005, 07:11:58
av benring
ahaaa:)

ok, då ska jag testa det under dagen, fick alla möjliga svar i min beräkning, oftast för varmt :lol:

/B

Postat: 11 oktober 2005, 13:03:28
av benring
Ja, det gick ju bättre, jag var tydligen på god väg men kanske va en aning trött:)

Tacka o bock:)

/B

Postat: 11 oktober 2005, 13:45:38
av sodjan
Vad fick du för upplösning ?

Postat: 11 oktober 2005, 13:50:01
av benring
Jag såg tex "22,756" en gång, jag har inte hunnit testa så mycket o begränsningen kan ligga i min kod, jag vet inte än:)


/B