Цитата(masterpc @ Feb 6 2008, 11:21)

А чем это можно объяснить?
Если я все правильно понимаю, так задумано производителем... Зачем - вопрос... В любом случае практика показывает, что со второго чтения данные идут верные. Я использовал в своих проектах в сумме около 10 DS18B20 и каждый, на первой конвертации и считывании давал температуру 85 градусов.
Цитата(masterpc @ Feb 6 2008, 11:21)

Было бы понятно, если бы температура выше 85 градусов лежала в другом байте, но это не так. Целые значения температуры лежат в двух младших байтах.
Вообще-то для температуры там отведено два байта всего... Старшая тетрада старшего байта отвечает за знак, младшая старшего байта и старшая младшего байта за целую часть, младшая младшего байта за дробную часть...
Компилятор какой используешь?
В CV AVR есть готовые библиотеки... правда там есть неудобство...
Я на асме писал работу с B20 - никаких проблем не было, кроме собственных кривых рук и первоначального непонимания некоторых моментов.

Цитата
- время опроса увеличивал вдвое, результат тот же. Пробовал уменьшать, тогда действительно, иногда датчик не успевал померять температуру и выводил 85 градусов. Но здесь имеет случай, когда он или не успевает померять значения температуры выше 85,56 градусов, или имеет место сброс датчика.
Время опроса?? Наверное имеется ввиду время конвертации? Оно четко прописано в даташите и зависит от установленного разрешения.
Я же говорил о том, что надо дать команду на конвертацию, подождать (750 мСек максимум), потом снова дать команду на конвертацию опять подождать (те же 750 мСек) и только тогда, считав данные, Вы должны получить реальную температуру.