BOB51 и вы думаете мне такой "полный" ответ помог ?((
Вообще я и так на ASMe пишу (без всяких билиотек; ручками), поэтому побитно даже для функции Read ROM делаю !
Можно пошагово сказать (если не трудно) как нужно, и что такое
проверка
? Что проверять ведь мы новые данные получаем от датчика, откуда мы знаем его биты ??
Мой вариант пошаговый (поправте, если не так):
1) Закидываем команду - F0h
2) Cчитывем первый бит, затем инверсный 1-й бит (может это проверка ?)
....
3) до 64 бита так же
4) Затем нужно Reset_1wire давать или же опять команду - F0h и далее считывать 8 байт
5) Концом цикла служит повторное считывания 8 байт одного и того же датчика ?
P.S. Типо такой пошаговой инструкции я ожидал увидеть в ответе.
Ответ совершенно верный - прочитайте даташит на термодатчик - там написано как это работает. И не стесняйтесь поводить пальцем по диаграмме. Еще, можете почитать application note 187 на сайте далласа про алгоритм поиска устройств на шине.
Думаю, что не буду навязываться с указанием моей реализации для PIC-ов - вы наверняка пишите под другой микроконтроллер. Но этих двух документов мне вполне хватило, чтобы разобраться.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
речь идет о контроле соответствию каждого бита /а не только прием или передача/
протокол выборки адресов и вызова заданного датчика довольно сложный (и громоздкий) для простейшей реализации - советую раскидать датчики по разным линиям - проще будет
ежли хочется садомазохизма - читай документы в "личке"
Готовый пример не помог? Все просто - вызвать GetPOMS и получаем массив с 8-ю ROM-id (можно и больше, тока контроллер с большим к-вом памяьи нужен).
После этогог делаем команду ROMatch - это выбор нужного далласа, ну и давай ему нужные команды.
coredumped да пока учебой занят=> еше так внимательно не смотрел, но вроде код не страшный, на первый взгляд . Все-равно спасибо, буду позже разбираться