Цитата(zltigo @ Nov 7 2006, 14:32)

Цитата(haker_fox @ Nov 7 2006, 13:18)

проанализируйте его внимательно.
Наверное имелось ввиду, что нужно читать между строк, поскльку в исходнике начисто отсутствует
преобразование полученного числа в температуру, в чем собственно и была 'проблема'.
Я ползовался стандартной библиотечной функцией
float ds18b20_temperature(unsigned char *addr)
{
unsigned char resolution;
if (ds18b20_read_spd(addr)==0) return -9999;
resolution=(__ds18b20_scratch_pad.conf_register>>5) & 3;
if (ds18b20_select(addr)==0) return -9999;
w1_write(0x44);
delay_ms(conv_delay[resolution]);
if (ds18b20_read_spd(addr)==0) return -9999;
w1_init();
return (*((int *) &__ds18b20_scratch_pad.temp_lsb) & bit_mask[resolution])*0.0625;
}