Сделал переменную 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); }




Ответить с цитированием