Jag försöker få rätt på en liten funktion som ska läsa av temperaturen på en smt160 temp sensor.
Jag har försökt att göra så lite flyttalsberäkningar som möjligt och det är
kanske där det blir fel.
(Jag använder en 16F628 (inte A) på 4MHz XT.)
Rutinen ska returnera ett heltal t.ex. 224 = 22.4 grader.
Vad gör jag för fel?!?

Kod: Markera allt
signed int smtsensor_read()
{
int k1,k2;
long high,n;
int temperatur,inValue,dutycycle;
k1=320;
k2=47;
high=0;
n=100000;
while (n > 0 )
{
inValue = input_state(PIN_B4);
if (inValue == 1 )
high++;
n--;
}
n=100000;
dutycycle=(high/n)*1000;
temperatur=(dutycycle-k1)/(k2/100);
return temperatur;
}