Цитата(timex @ Sep 10 2008, 11:53)

Всем привет! Прошу помочь в одном вопросе.
Есть контроллер RS232>1-Wire DS2480B, подключённый к микроконтроллеру AVR. Компилятор - WinAVR (это к тому, что у него нет библиотеки для работы с 1-Wire).
К нему подключён термодатчик (в принципе не важно какой) DS18B20 с уже известным серийным номером (который 8 байт).
Сейчас понадобилось подключать к этой шине таблетку DS1990A для охранных функций.
Но для её идентификации нужно сначала её запомнить в микроконтроллере для последующих сравнений. Но таблетка эта - не единственная. Т.е. серийный номер заранее не известен.
...
Единственный вариант, который придётся использовать - поиск устройств на шине. Но как раз им не хочется заморачиваться, ибо plug&play на шине 1-Wire ещё не освоил и кажется будет много возни с ним.
Без SearchROM с несколькими устройствами на шине не справиться. У производителя где-то в аппнотах были и С-шные сорцы для SearchROM.
А дальше просто. Сначала придумываете процедуру обучения, в которой через SearchROM запоминаете ROM ID всех нужных ванварных устройств.
Потом с устройствами, которые отвечают на MatchROM (н-р, DS18B20), работаете через MatchROM по известным ROM ID, а с неотвечающими (DS1990A) - через ту же SearchROM с последующим сравнением полученных ROM ID с известными (здесь алгоритм поиска можно сразу заворачивать только в сторону семейства 0x01).