Сейчас только обратил на это внимание. Есть часть кода: ( Полностью он где -то выкладывался на форуме , в многочисленных темах о DS18)
Код
....................................................
cpi rab,ToConvTermo;| Ищем команду ToConvTermo
brne ForwardCheck;| Не она идём дальше
ldi temp,1<<RXCIE1|1<<UDRIE1|0<<RXEN1|1<<TXEN1
sts UCSR1B,temp;/ По идее конверт. должна закончиться до этой проверки,
CheckPinRX:
sbis PIND,PIND2;/ но проверить надо ,поэтому отключаем приёмник,
rjmp CheckPinRX;/ если на входе (0) конвертация не закончена.Тогда - ждём
ldi temp,1<<RXCIE1|1<<UDRIE1|1<<RXEN1|1<<TXEN1
sts UCSR1B,temp
ForwardCheck:
........................................................
cpi rab,ToConvTermo;| Ищем команду ToConvTermo
brne ForwardCheck;| Не она идём дальше
ldi temp,1<<RXCIE1|1<<UDRIE1|0<<RXEN1|1<<TXEN1
sts UCSR1B,temp;/ По идее конверт. должна закончиться до этой проверки,
CheckPinRX:
sbis PIND,PIND2;/ но проверить надо ,поэтому отключаем приёмник,
rjmp CheckPinRX;/ если на входе (0) конвертация не закончена.Тогда - ждём
ldi temp,1<<RXCIE1|1<<UDRIE1|1<<RXEN1|1<<TXEN1
sts UCSR1B,temp
ForwardCheck:
........................................................
ToConvTermo - это $44 -начало конвертации температуры. Отловил - отключил приемник и жду 1 от DS18B20. DS- понятно запитана от внешнего источника.
Поэтому, по идее такой фокус возможен, согласно D/S . PIN RX порта по умолчанию сконфигурирован на вход.
Студия , если делать BREAKPOINT , на SBIS дает следующую картину PIND2=1 PORTD2=0 хотя осцил на ноге дает тоже 1 и конечно никакой конвертации цикл не ждёт.
Не могу понять почему нет 0 от DS18B20 или что-то упустил при отключении USART?

P/S Да забыл , отключается USART в прерывании, Может незя этого делать в нём?