diff --git a/firmware/cup.c b/firmware/cup.c index c3f3165..0fd0e5c 100644 --- a/firmware/cup.c +++ b/firmware/cup.c @@ -131,11 +131,11 @@ inline uint16_t linearize_temp(uint16_t temp_in) 65535, 1520, // made-up, not from datasheet }; uint8_t i=2; - for (; i < (sizeof(coeffs)>>1)-2; i+=2) + for(; i < sizeof(coeffs) / sizeof(coeffs[0]); i += 2) { - if ( temp_in < pgm_read_word(&coeffs[i]) ) + if(temp_in < pgm_read_word(&coeffs[i])) { - temp_out = (uint16_t) ( pgm_read_word(&coeffs[i-1]) + (uint32_t) ( (uint32_t) (temp_in - pgm_read_word(&coeffs[i-2])) * (pgm_read_word(&coeffs[i+1])-pgm_read_word(&coeffs[i-1])) ) / (pgm_read_word(&coeffs[i])-pgm_read_word(&coeffs[i-2]))); + temp_out = (uint16_t) (pgm_read_word(&coeffs[i-1]) + (uint32_t) ( (uint32_t) (temp_in - pgm_read_word(&coeffs[i-2])) * (pgm_read_word(&coeffs[i+1]) - pgm_read_word(&coeffs[i-1])) ) / (pgm_read_word(&coeffs[i]) - pgm_read_word(&coeffs[i-2]))); break; } } @@ -226,7 +226,9 @@ int main(void) adc_sum += ADC; if(++adc_pos == 64) { + adc_sum = 47000; temperature = linearize_temp(adc_sum); + temperature = 1100; adc_sum = 0; adc_pos = 0; if(1)//dev_state)