Цитата(neurox @ Dec 10 2008, 04:20)

видимо ошибка именно в данном участке, потому что конвертация температуры не происходит.. как определил, что не происходит? очень просто - во время конвертации он должен выдавать лог. 0 в линию почти 700ms...
Возможно я не прав, но мне кажется, что Вы еще и неверно проверяете состояние линии. Вернее, признак завершения конвертации температуры. Дело в том, что при преобразовании датчик не опускает линию в "0" на 700 мс. Это помешает работе других устройств на шине. А для определения окончания конца преобразования нужно опрашивать
не линию на состояние лог.0,
а датчик . Т.е. периодически формировать read time slot.
Кроме того, если у Вас используются прерывания, нужно следить, чтобы они не растягивали формируемые тайминги. А на время генерации задержки 1 мкс их лучше вообще запретить.
P.S. (В добавок к посту от ARV)
Для того, чтобы Вы не запутались в уровнях на линии, рекомендую объявить 2 дефайна:
#define CLR_1W sbi DDRA,PA6
#define SET_1W cbi DDRA,PA6