X-Git-Url: http://dolda2000.com/gitweb/?p=kokare.git;a=blobdiff_plain;f=kokare.c;h=f7033d8d29b16e6067445fa70ca1436a5dce9089;hp=0170237153c766d930f8178b73f8c15f2c402496;hb=HEAD;hpb=9a754855ff4e519205567ab96780b3ccb998a9d0 diff --git a/kokare.c b/kokare.c index 0170237..f7033d8 100644 --- a/kokare.c +++ b/kokare.c @@ -228,16 +228,23 @@ void convcycle(void) * Theoretically: * t = RC * ln(2) => R = t / (C * ln(2)) * R = A * exp(B / T) => T = B / ln(R / A) - * T = B / ln(R / (A * C * ln(2))) - * In the following: + * T = B / ln(t / (A * C * ln(2))) + * Where: + * t = The measured time (s) + * R = The resistance of the thermistor (Ohm) + * C = The capacitance of the capacitor (F) + * T = The temperature (K) + * A, B are the thermistor-specific constants + * + * In the following code: * a = ttimea as float - * C = 1e6 / (A * C * ln(2)) + * C = 1e-6 / (A * C * ln(2)) * ra = a * C * l = ln(ra) * t = B / l * Note, temperature is in Kelvin */ -#define C 9.792934 +#define C 10.819112 /* A is 0.1333469 */ #define B 4020.0 if(state == 0) { if((mnow - last > 200000) && tavgok) { @@ -322,12 +329,6 @@ int main(void) cur = 0; if(cur > 100) cur = 100; - if(cur < 100) { - display(cur, 0, run); - } else { - dsp[0] = SEGG; - dsp[1] = SEGG | (run?SEGP:0); - } utime = mnow; } if(mnow - utime > 2000000) { @@ -338,6 +339,12 @@ int main(void) run = !run; sstate = 0; } + if(cur < 100) { + display(cur, 0, run); + } else { + dsp[0] = SEGG; + dsp[1] = SEGG | (run?SEGP:0); + } } else if(state == 2) { /* Display raw temp time reading */ if(ttimea < 20000) { @@ -364,7 +371,7 @@ int main(void) * ms. */ trdelay = 7; } else { - trdelay = 79 - (delta * 9); + trdelay = 75 - (delta * 5); } } else { tron = 0;