Страница 4 из 16

Добавлено: Пн мар 16, 2009 13:09:32
IPS
Baloo писал(а):А какую команду Вы использовали?
Всё дело в том, что мне нужно иметь возможность подключать разное количество датчиков к устройству и чтобы оно само определяло сколько их и т.д.
Я хочу использовать команду Search ROM (0xF0), но не знаю как... :(
Если кто знает, подскажите. Буду очень признателен!

Добавлено: Пн мар 16, 2009 14:49:58
sachok
Baloo писал(а):Вот, что выдает CV после компиляции
987 слов, а не байт.
Я хочу использовать команду Search ROM (0xF0), но не знаю как... Sad

Код: Выделить всё

devices=w1_search(0xf0,rom_code);

Добавлено: Пн мар 16, 2009 17:06:11
IPS

Код: Выделить всё

devices=w1_search(0xf0,rom_code);
[/quote]
Спасибо, но я не это имел ввиду. К сожалению с англоязычного даташита я толком ничё не понял, что представляет собой алгоритм вычисления количества датчиков и их серийников. Может у кого есть русскоязычная версия?

Добавлено: Пн мар 16, 2009 17:48:53
Pippeytz
Почитай статью про 1-вайр , там все на пальцах описано
http://radiokot.ru/articles/13/

Добавлено: Пн мар 16, 2009 20:19:25
ARV
IPS писал(а):

Код: Выделить всё

devices=w1_search(0xf0,rom_code);
Спасибо, но я не это имел ввиду. К сожалению с англоязычного даташита я толком ничё не понял, что представляет собой алгоритм вычисления количества датчиков и их серийников.
а чего там понимать? там исходник программы на Си прилагается - пожалуйста, разбирайтесь или просто скопируйте и пользуйтесь

Добавлено: Вт мар 17, 2009 12:29:59
shtorm
Baloo ds18b20_init(&rom_code[i++][0],20,30,DS18B20_12BIT_RES)
вместо &rom_code[i++] ьщжно поставить число. и это будит номер датчика, допустим если тебе нужно переставить 2-ой датчик на 9 бит то можно написать ds18b20_init(1,20,30,DS18B20_9BIT_RES); если у тебя всего 1 датчик то 0 да и в этом случае нет необходимости искать датчики на линии. вобщем открой файл библиотеки для ds18b20 думаю поймешь что к чему.

IPS devices=w1_search(0xf0,rom_code); при этой ф-ции devices=количеству датчиков. а дальше как написал выше можно переводить на любой режим любой датчик. опрашивать температуру соотвественно temp=ds18b20_temperature(&rom_code[0]); где i номер вашего датчика. rom_code - массив где хроняться номера датчиков
rom_code[0][0] -первый
rom_code[1][0] - второй
rom_code[2][0] - третий
...

это мои наблюдения..может гдето не прав, но работает ))

Добавлено: Вт мар 17, 2009 19:24:05
Baloo
shtorm спасибо за подсказку, буду пробовать!

Добавлено: Вт мар 17, 2009 20:57:57
IPS
Спасибо, друзья! Но я наверное не очень правильно объяснил :)
Я не пишу на Си, а только на Ассемблере!!! Поэтому встроенные функции мне не подходят. Меня интересует "голая" теория о методе вычисления. В даташите есть алгоритм, но он не так прост, чтобы не владея английским, понять его описание...[/code][/quote]

Добавлено: Вт мар 17, 2009 21:02:48
IPS
Pippeytz писал(а):Почитай статью про 1-вайр , там все на пальцах описано
http://radiokot.ru/articles/13/
В этой статье ни слова нет о вычислении количества датчиков и их серийников при помощи универсального метода, так как он довольно сложен и требует отдельной статьи!

Добавлено: Ср мар 18, 2009 00:15:15
Baloo
А почему-бы не перейти на Си?
По-моему писать легче! :P

Добавлено: Ср мар 18, 2009 16:06:07
IPS
Baloo писал(а):А почему-бы не перейти на Си?
По-моему писать легче! :P
Писать легче, но привычка - вторая натура :) Я люблю на Ассемблере писать. Оптимальнее кода никогда не получишь на любом другом языке. Да и памяти в ATtiny2313 маловато, чтобы ею разбрасываться.

Добавлено: Пн мар 23, 2009 16:44:48
сергейф
можно ли к одному датчику DS18B20 подклучать 2, 3 устройства?
у меня подключено 2, и работает, но может это чем-то грозит?

Добавлено: Пн мар 23, 2009 18:31:34
GP1
IPS писал(а):
Pippeytz писал(а):Почитай статью про 1-вайр , там все на пальцах описано
http://radiokot.ru/articles/13/
В этой статье ни слова нет о вычислении количества датчиков и их серийников при помощи универсального метода, так как он довольно сложен и требует отдельной статьи!
Возможно здесь найдете алгоритм определения серийников:
http://ibutton.ru/
p.s. все на "нашенском" :)))

Добавлено: Пн мар 23, 2009 18:39:04
GP1
сергейф писал(а):можно ли к одному датчику DS18B20 подклучать 2, 3 устройства?
у меня подключено 2, и работает, но может это чем-то грозит?
да хоть тышу, только нельзя превышать нагрузочную способность, а через буфер - нет проблем

Добавлено: Вт мар 31, 2009 12:23:36
Tardos
А кто знает как десятые доли вывести на дисплей? Настроил на 12 бит. Чет не получается.

Добавлено: Вт мар 31, 2009 20:48:43
delay
Tardos писал(а):А кто знает как десятые доли вывести на дисплей? Настроил на 12 бит. Чет не получается.
Может это не правильно, я умножил на 10 и отбросил дробную часть. Ну а запятую поставил после 2-го индикатора.

Добавлено: Вт мар 31, 2009 22:37:38
ARV
господи, ну неужели почитать даташит - непосильная задача?! просто надо результат 12-битовый поделить на 16 - и будет вам дробное значение температуры... и с десятыми, и с сотыми...

Добавлено: Вт мар 31, 2009 22:54:30
delay
А что неправильно в моем решении? Температуру кипящей воды получил 99,9. Свою померил - 36,4
Это если я правильно понял задачу, т.е. вывод на 7-сегментные индикаторы.

Добавлено: Ср апр 01, 2009 07:22:39
ARV
delay писал(а):А что неправильно в моем решении? Температуру кипящей воды получил 99,9. Свою померил - 36,4
Это если я правильно понял задачу, т.е. вывод на 7-сегментные индикаторы.
во-первых, вас устраивает? - значит, щастье пришло!
во-вторых, место вывода (7-сегментник или что-то иное), как мне кажется, решающей роли не играет...

Добавлено: Ср апр 01, 2009 07:52:15
delay
ARV писал(а):во-вторых, место вывода (7-сегментник или что-то иное), как мне кажется, решающей роли не играет...
А я думал, что на ЖК дисплей можно вывести значение, как есть, а для 7-сегментного нужно выводить цыфры.