единственное надо или от флоатов избавляться или...
в общем кто сможет довести это дело до ума ?
Код: Выделить всё
tmp=counter;
tmp=65536*tmp;
tmp+=TCNT1;
tmp+=11;
tmp=800000000/tmp;
//snprintf(buf,20, "Watts: %.09f", tmp);
// пытаемся заменить флоат интами
t=tmp;
for(a=18;a>=10;a--)
{
buf[a]=t%10;
buf[a]+=0x30;
t=t/10;
}
lcd_gotoxy(0,0);
lcd_puts(buf);
tmp это float
t это лонг инт
buf это char [20]
нужно вывести хотябы целую часть флоата или посчитать деление 800000000 на ещё более крутое число например
8000000000 - это 0.1 ватт...лонг инт это всего
4294967295 - тоесть нам не хватает 2-4 разрядов...млин...
может как-то считать по-другому?
например не умножать 65536 на кол-во перелетов таймера через 0xFFFF.... на частоте 8 мегагерц
надать прикинуть...
1 герц это 100 ватт...
65536 тактов по 8 мегагерц это 122,0703125 герц....тоесть 12207,03125 ватт...
может как-то раздельно считать эти перелеты через 12207 ватт ?
я чтото тут вообще ни чего не понимаю....