Reaper666 писал(а): как можно выловить этот глюк компилятора?
Либо сравнением как здесь, либо внимательным изучением листинга дизассемблера.
Reaper666 писал(а): как можно выловить этот глюк компилятора?
Есть ещё один вариант, который Вы упустили - неправильный расчёт CRC. Его то-же стоит проверить...Если CRC без ошибок, значит передача информации проходит корректно. Значит, DS18B20, при конвертации температуры (44h), по какой-то причине ошибочно определяет температуру, которую затем безошибочно передаёт контроллеру (BEh).
100м это предел по витой паре для 1wire..... и еще активная подтяжка нужна, она у вас реализована?Gerik_PP писал(а):Выношу датчик на улицу, тупо цепляю его по витой паре длинной 100 метров, уменьшив при этом только подтягивающий до 1,5к.
Gerik_PP писал(а):цепляю его по витой паре длинной 100 метров, уменьшив при этом только подтягивающий до 1,5к. Проверка CRC проходит без ошибок, но значение температуры с каждым чтением (раз в 5 сек.) всегда отличается с разницей от 1-го до 15 градусов!!!!!
shads писал(а):100м это предел по витой паре для 1wire..... и еще активная подтяжка нужна, она у вас реализована?
Gudd-Head писал(а):Скорее всего, это помехи, от которых датчик сходит с ума.
shads писал(а):А тут по вашему CRC будет вычислятся правильно?
Gudd-Head писал(а):Вот это уже интересно. Тоже с таким сталкивались. В какую сторону температура уходит от настоящей?
Gudd-Head писал(а):Скорее всего, это помехи, от которых датчик сходит с ума.
Где у вас проложены эти 100 м? Витая пара экранирована?
Gudd-Head писал(а):Может, попробовать продёрнуть кабель через ферритовое кольцо у датчика?

shads писал(а):Я вообще, когда так далеко цепляю датчики, то подаю 12в по питанию, а рядом с датчиком ставлю 78l05
Gudd-Head писал(а):У вас там антенна прям. Думаю, есть смысл наоборот поставить 10...100...1000 пФ РЧ давить.