master
Nidan 13 years ago
parent f723647a5d
commit 2c73b88494

@ -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)

Loading…
Cancel
Save