Да, в протеусе не пашет вообще, в железе работает. Вот только как температуру вывести с десятыми?
Пробую вот так, и полный бред выводит. А без десятичных вроде нормально.
PHP код:
for(j=0;j<devices;)
{
temperature=ds18b20_temperature(&ds18b20_rom_codes[j][0]);
temps = (unsigned int) temperature;//Присвоим переменной temp значение переменной temperature с явным указанием типа данных
if (temperature<0)temps = ( ~temps ) + 0x0001; // если число отрицательное перевести его в норм.вид
celie = (temps >> 4); // целая часть числа
drob_tmp = temps & 0x0F; // дробная часть числа с точностью 1/16 градуса
drob = (unsigned int) ((drob_tmp * 10) / 16); // преобразование дробной части в формате "1/16 градуса" в десятичный формат с точностью 0,1 градуса
if (temperature<0) {//Если темп. плюсовая или 0
buf5=10;
}
buf0=13;
buf1=0;
buf2=drob;
buf3=celie%10^80;
buf4=celie/10;
j++;
}
delay_ms(800);
}