Сделал переменную RealTemp float. Заработало:
Код:
#define Temp1Count 13
#include <avr/pgmspace.h>
uint16_t Temp1[Temp1Count][2] PROGMEM =
{
{77.95155709,-25,}, //первое число на входе, второе температура
{80.18392652,-24.5},
{132.1470136,-15},
{191.9567007,-7},
{256.232939,0},
{329.8167327,7},
{421.0667973,15},
{536.3809524,25},
{643.5181429,35},
{772.1414862,50},
{903.0706326,75},
{964.8461591,100},
{993.3008629,125}
};
const int in = 0;
int sensor = 0;
int j;
void setup()
{
Serial.begin(9600);
}
void loop() {
sensor = analogRead(in);
Serial.print("Analog = ");
Serial.println(sensor);
uint16_t InTemp;
float RealTemp;
uint16_t InLeftTemp;
InTemp= sensor;
j=Temp1Count;
do
{
j--;
InLeftTemp=pgm_read_word(&Temp1[j][0]);
}
while ((j>=0.0)&&(InTemp<InLeftTemp));
float InRightTemp=pgm_read_word(&Temp1[j+1][0]);
float OutLeftTemp=pgm_read_word(&Temp1[j][1]);
float OutRightTemp=pgm_read_word(&Temp1[j+1][1]);
RealTemp=OutLeftTemp+(OutRightTemp-OutLeftTemp)*(InTemp-InLeftTemp)/(InRightTemp-InLeftTemp);//RealTemp=(uint16_t)RealTemp;
Serial.print("temp = ");Serial.println((RealTemp));
delay(1000);
}
Всем спасибо!