Показать сообщение отдельно
Старый 20.03.2016, 21:55   #37 (Ссылка на пост)
ДмитрийТ
Задержался
 
Аватар для ДмитрийТ
Пол:
 
Активность Longevity
0/20 9/20
Today Сообщения
0/5 sssssss71
Адрес: Херсон
Благодарил(а): 2
Благодарили 1 раз в 1 посте
Галерея: 0
Вес репутации: 10 ДмитрийТ идет по правильному пути
Да, в протеусе не пашет вообще, в железе работает. Вот только как температуру вывести с десятыми?
Пробую вот так, и полный бред выводит. А без десятичных вроде нормально.
PHP код:
for(j=0;j<devices;)
{
temperature=ds18b20_temperature(&ds18b20_rom_codes[j][0]);
temps = (unsigned inttemperature;//Присвоим переменной 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);


Последний раз редактировалось ДмитрийТ, 20.03.2016 в 22:01.
ДмитрийТ вне форума  
Ответить с цитированием