|
|
|
|
Сергей К: В моем примере Судя по тому, что некоторые "вешают" по пять 1-Wire на один МК (кстати, ещё один из методов "борьбы" с адресацией датчиков, каждому датчику - по 1-Wire ), так делать можно, но зачем пренебрегать безопасностью, если есть свободный вывод ОС? не вижу смысла Смысл - обычный, разгрузить основную программу. Кроме того, ИМХО, временнЫе задержки (основу 1-Wire) удобней и точнее сформировать таймерами. И чего их экономить, когда оных аж три штуки? по очереди, подключать остальные Только надо не забывать отключать предыдущие. Именно этот алгоритм я выше и описАл. Команда выдачи ID называется "Read ROM" и представляет байт 33h, а та чуднАя команда, про которую я говорил выше, называется "Search ROM" (байт 0F0h), и как она работает, мне лично неведомо. |
|
|
Gregory: как она работает, мне лично неведомо В даташите ж всё описано...
|
|
|
Gregory: Только надо не забывать отключать предыдущие естественно. Gregory: если есть свободный вывод ОС ну если есть - то конечно. Но как тогда читать? Две ножки задействовать? Gregory: удобней и точнее сформировать таймерами а нужна ли чам такая точность? пару мкс туда пару сюда , там ведь диаппазон "от" и "до" дан. Gregory: И чего их экономить, когда оных аж три штуки? а в моем МК все три заняты Первый выполняет роль RTC, второй работает с ИК приемником. Третий... уже и не помню, что делает ( ), но я его на ШИМ хотел пристроить... но в общем... это дело вкуса и доступных ресурсов |
|
|
Сергей К: Но как тогда читать? Так, а в чём проблема? Настраиваем на вход, и считываем. пару мкс туда пару сюда Ну, вообще-то там говорится о датчиках, которые, в качестве времязадающих имеют RC-цепи (отсюда и разброс параметров). А Вы к этой погрешности добавляете ещё и погрешность в программе. Кстати, если у Вас задействовано аж три прерывания, то Вы уверены, что там пара мкс? это дело вкуса и доступных ресурсов На этом и порешим. |
|
|
smg123: Датчик DS18B20 возвращает температуру с фиксированной запятой, 4 знака после запятой. Таким образом для получения температуры с точностью 0.1 градуса нам нужно возвращаемое значение умножить на 0.625 Я не понял. Имеется в виду погрешность 0,1 гр. ? Это как же? В даташите указано, что погрешность 0,5 град. И что, можно элементарно получить точность выше указанной в даташите? И если это можно сделать так легко, то почему это уже не реализоавали в самом датчике на заводе? При этом не увеличивается время опроса, как при увеличении разрядности. Или вы имеете в виду дискретность? Так дискретность вроди достигается изменением разрядности. От куда взялось это умножение? Я установил разрядность 10, т.к. при погрешности 0,5 дискретность выше 0,25 особо не нужна. |
|
|
Gregory: как понять, какой именно датчик ответил? Как всегда искал в инете одно, нашёл другое. У автора есть алгоритм поиска 8 датчиков на одной шине на асме: http://frank.bol.ucla.edu/2313Temper8.htm choroh: Я не понял. ...погрешность, точность, дискретность, разрядность... Смешались в кучу кони, люди...(с) Погрешность датчика и точность измерения (преобразования в двоичный код) - две большие разницы, как говорят в Одессе.
|
|
|
smg123: на асме У него АВР... |
|
|
тут главное алгоритм. Там есть ссылка на Application Note 162, должно быть упоминание об алгоритме поиска (см. GetROMS в тексте) |
|
|
Сергей К: Там есть ссылка... Что за ссылку Вы привели? 162 апноут находится здесь или здесь. А ещё есть 187 апноут по поиску устройств на шине 1-wire.
|
|
|
smg123: Смешались в кучу кони, люди...(с) Погрешность датчика и точность измерения (преобразования в двоичный код) - две большие разницы, как говорят в Одессе. Не знаю, где там кони. Погрешность - это величина ошибки результата. Дискретность - это шаг, с которым происходит измерение. Разрядность - это количество бит обрабатываемого сигнала. Вопрос стоит, как измерить температуру приближенно к истинному значению. И если есть возможность улучшить результат путем умножения полученного значения на некое число, то почему это не сделала производитель? |
|
|
|
|