Я писал, что твоя ошибка была в последовательности выполнения алгоритма в прерывании по таймеру. Так как не изучив работу данного датчика, пытаешься его юзать.

Суть в следующем: прерывание у тебя настроено через каждые 80 мс (примерно), а датчик после команды… конвертирует температуру максимально 750 мс… при конвертации шину он притягивает к земле… но твой алгоритм на это положил и начинает каждые 80 мс производить сброс шины…

в алгоритме сброса шины, вначале производится проверка высокого уровня, но его там быть не может при конвертировании температуры датчиком… а раз проверка шины произведена, а высокого уровня нет, вот и получаешь ошибку неисправности под кодом №1.
Зная эту фишку датчика, я в последовательности опроса, поставил проверку уровня на шине (после команды конвертировать)… пока датчик не освободит шину, его никто не дёргает… а вот когда он закончит все свои дела, тогда и нужно читать температуру…
Как-то так.
1.png [ 8.08 КБ | Просмотров: 8472 ]