From 0c34a17611494f5b459692db2c4928e6f63f9b97 Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 15 Dec 2025 16:18:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ADC_Temp_KST45-14-2.c | 1051 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1039 insertions(+), 12 deletions(-) diff --git a/ADC_Temp_KST45-14-2.c b/ADC_Temp_KST45-14-2.c index eb79a56..45d41fd 100644 --- a/ADC_Temp_KST45-14-2.c +++ b/ADC_Temp_KST45-14-2.c @@ -10,14 +10,14 @@ #define R1 3000.0f // Сопротивление делителя напряжения #define TABLE_START_TEMP (-40) #define TABLE_END_TEMP 85 -#define TABLE_SIZE 26 +#define TABLE_SIZE 38 // Параметры Steinhart-Hart для термистора #define koef_A 0.001741624168166423 #define koef_B 0.00017003940268680147 #define koef_C 0.0000004890545443703666 -#define TABLE_SIZE_LOOKUP 32 +#define TABLE_SIZE_LOOKUP 512 // Структура для хранения табличных данных typedef struct { @@ -25,7 +25,8 @@ typedef struct { float r_nom; // Номинальное сопротивление (Ω) } ntc_table_entry; -// Таблица из документа +/* +// Таблица из документа KST45-14-2 static const ntc_table_entry ntc_table[] = { {-40, 100950.0f}, {-35, 72777.0f}, @@ -54,6 +55,521 @@ static const ntc_table_entry ntc_table[] = { {80, 377.4f}, {85, 321.7f} }; +*/ +ntc_table_entry ntc_table[] = { + {0,-2731}, + {8,2605}, + {16,2164}, + {24,1937}, + {32,1789}, + {40,1680}, + {48,1594}, + {56,1524}, + {64,1466}, + {72,1415}, + {80,1371}, + {88,1331}, + {96,1296}, + {104,1264}, + {112,1234}, + {120,1207}, + {128,1182}, + {136,1159}, + {144,1138}, + {152,1117}, + {160,1098}, + {168,1080}, + {176,1063}, + {184,1047}, + {192,1032}, + {200,1017}, + {208,1003}, + {216,989}, + {224,976}, + {232,964}, + {240,952}, + {248,941}, + {256,930}, + {264,919}, + {272,909}, + {280,899}, + {288,889}, + {296,880}, + {304,871}, + {312,862}, + {320,853}, + {328,845}, + {336,837}, + {344,829}, + {352,821}, + {360,813}, + {368,806}, + {376,799}, + {384,792}, + {392,785}, + {400,778}, + {408,772}, + {416,766}, + {424,759}, + {432,753}, + {440,747}, + {448,741}, + {456,735}, + {464,730}, + {472,724}, + {480,718}, + {488,713}, + {496,708}, + {504,702}, + {512,697}, + {520,692}, + {528,687}, + {536,682}, + {544,678}, + {552,673}, + {560,668}, + {568,664}, + {576,659}, + {584,655}, + {592,650}, + {600,646}, + {608,641}, + {616,637}, + {624,633}, + {632,629}, + {640,625}, + {648,621}, + {656,617}, + {664,613}, + {672,609}, + {680,605}, + {688,601}, + {696,597}, + {704,594}, + {712,590}, + {720,586}, + {728,583}, + {736,579}, + {744,576}, + {752,572}, + {760,569}, + {768,565}, + {776,562}, + {784,559}, + {792,555}, + {800,552}, + {808,549}, + {816,546}, + {824,542}, + {832,539}, + {840,536}, + {848,533}, + {856,530}, + {864,527}, + {872,524}, + {880,521}, + {888,518}, + {896,515}, + {904,512}, + {912,509}, + {920,506}, + {928,503}, + {936,500}, + {944,497}, + {952,494}, + {960,492}, + {968,489}, + {976,486}, + {984,483}, + {992,481}, + {1000,478}, + {1008,475}, + {1016,473}, + {1024,470}, + {1032,468}, + {1040,465}, + {1048,462}, + {1056,460}, + {1064,457}, + {1072,455}, + {1080,452}, + {1088,450}, + {1096,447}, + {1104,445}, + {1112,442}, + {1120,440}, + {1128,437}, + {1136,435}, + {1144,433}, + {1152,430}, + {1160,428}, + {1168,425}, + {1176,423}, + {1184,421}, + {1192,418}, + {1200,416}, + {1208,414}, + {1216,411}, + {1224,409}, + {1232,407}, + {1240,405}, + {1248,402}, + {1256,400}, + {1264,398}, + {1272,396}, + {1280,394}, + {1288,391}, + {1296,389}, + {1304,387}, + {1312,385}, + {1320,383}, + {1328,381}, + {1336,378}, + {1344,376}, + {1352,374}, + {1360,372}, + {1368,370}, + {1376,368}, + {1384,366}, + {1392,364}, + {1400,362}, + {1408,360}, + {1416,358}, + {1424,356}, + {1432,354}, + {1440,352}, + {1448,350}, + {1456,348}, + {1464,346}, + {1472,344}, + {1480,342}, + {1488,340}, + {1496,338}, + {1504,336}, + {1512,334}, + {1520,332}, + {1528,330}, + {1536,328}, + {1544,326}, + {1552,324}, + {1560,322}, + {1568,320}, + {1576,318}, + {1584,316}, + {1592,314}, + {1600,312}, + {1608,311}, + {1616,309}, + {1624,307}, + {1632,305}, + {1640,303}, + {1648,301}, + {1656,299}, + {1664,297}, + {1672,296}, + {1680,294}, + {1688,292}, + {1696,290}, + {1704,288}, + {1712,286}, + {1720,285}, + {1728,283}, + {1736,281}, + {1744,279}, + {1752,277}, + {1760,276}, + {1768,274}, + {1776,272}, + {1784,270}, + {1792,268}, + {1800,267}, + {1808,265}, + {1816,263}, + {1824,261}, + {1832,260}, + {1840,258}, + {1848,256}, + {1856,254}, + {1864,253}, + {1872,251}, + {1880,249}, + {1888,247}, + {1896,246}, + {1904,244}, + {1912,242}, + {1920,240}, + {1928,239}, + {1936,237}, + {1944,235}, + {1952,233}, + {1960,232}, + {1968,230}, + {1976,228}, + {1984,227}, + {1992,225}, + {2000,223}, + {2008,221}, + {2016,220}, + {2024,218}, + {2032,216}, + {2040,215}, + {2048,213}, + {2056,211}, + {2064,209}, + {2072,208}, + {2080,206}, + {2088,204}, + {2096,203}, + {2104,201}, + {2112,199}, + {2120,198}, + {2128,196}, + {2136,194}, + {2144,193}, + {2152,191}, + {2160,189}, + {2168,188}, + {2176,186}, + {2184,184}, + {2192,182}, + {2200,181}, + {2208,179}, + {2216,177}, + {2224,176}, + {2232,174}, + {2240,172}, + {2248,171}, + {2256,169}, + {2264,167}, + {2272,166}, + {2280,164}, + {2288,162}, + {2296,161}, + {2304,159}, + {2312,157}, + {2320,156}, + {2328,154}, + {2336,152}, + {2344,151}, + {2352,149}, + {2360,147}, + {2368,146}, + {2376,144}, + {2384,142}, + {2392,141}, + {2400,139}, + {2408,137}, + {2416,136}, + {2424,134}, + {2432,132}, + {2440,130}, + {2448,129}, + {2456,127}, + {2464,125}, + {2472,124}, + {2480,122}, + {2488,120}, + {2496,119}, + {2504,117}, + {2512,115}, + {2520,114}, + {2528,112}, + {2536,110}, + {2544,109}, + {2552,107}, + {2560,105}, + {2568,104}, + {2576,102}, + {2584,100}, + {2592,98}, + {2600,97}, + {2608,95}, + {2616,93}, + {2624,92}, + {2632,90}, + {2640,88}, + {2648,86}, + {2656,85}, + {2664,83}, + {2672,81}, + {2680,79}, + {2688,78}, + {2696,76}, + {2704,74}, + {2712,73}, + {2720,71}, + {2728,69}, + {2736,67}, + {2744,66}, + {2752,64}, + {2760,62}, + {2768,60}, + {2776,58}, + {2784,57}, + {2792,55}, + {2800,53}, + {2808,51}, + {2816,50}, + {2824,48}, + {2832,46}, + {2840,44}, + {2848,42}, + {2856,41}, + {2864,39}, + {2872,37}, + {2880,35}, + {2888,33}, + {2896,31}, + {2904,30}, + {2912,28}, + {2920,26}, + {2928,24}, + {2936,22}, + {2944,20}, + {2952,18}, + {2960,16}, + {2968,15}, + {2976,13}, + {2984,11}, + {2992,9}, + {3000,7}, + {3008,5}, + {3016,3}, + {3024,1}, + {3032,0}, + {3040,-2}, + {3048,-4}, + {3056,-6}, + {3064,-8}, + {3072,-10}, + {3080,-12}, + {3088,-14}, + {3096,-16}, + {3104,-18}, + {3112,-20}, + {3120,-22}, + {3128,-24}, + {3136,-26}, + {3144,-28}, + {3152,-30}, + {3160,-32}, + {3168,-34}, + {3176,-36}, + {3184,-38}, + {3192,-40}, + {3200,-42}, + {3208,-44}, + {3216,-47}, + {3224,-49}, + {3232,-51}, + {3240,-53}, + {3248,-55}, + {3256,-58}, + {3264,-60}, + {3272,-62}, + {3280,-64}, + {3288,-67}, + {3296,-69}, + {3304,-71}, + {3312,-73}, + {3320,-76}, + {3328,-78}, + {3336,-80}, + {3344,-83}, + {3352,-85}, + {3360,-88}, + {3368,-90}, + {3376,-92}, + {3384,-95}, + {3392,-97}, + {3400,-100}, + {3408,-102}, + {3416,-105}, + {3424,-107}, + {3432,-110}, + {3440,-112}, + {3448,-115}, + {3456,-118}, + {3464,-120}, + {3472,-123}, + {3480,-126}, + {3488,-128}, + {3496,-131}, + {3504,-134}, + {3512,-137}, + {3520,-140}, + {3528,-142}, + {3536,-145}, + {3544,-148}, + {3552,-151}, + {3560,-154}, + {3568,-157}, + {3576,-160}, + {3584,-163}, + {3592,-166}, + {3600,-170}, + {3608,-173}, + {3616,-176}, + {3624,-179}, + {3632,-182}, + {3640,-186}, + {3648,-189}, + {3656,-193}, + {3664,-196}, + {3672,-200}, + {3680,-203}, + {3688,-207}, + {3696,-211}, + {3704,-214}, + {3712,-218}, + {3720,-222}, + {3728,-226}, + {3736,-230}, + {3744,-234}, + {3752,-238}, + {3760,-242}, + {3768,-247}, + {3776,-251}, + {3784,-256}, + {3792,-260}, + {3800,-265}, + {3808,-270}, + {3816,-275}, + {3824,-280}, + {3832,-285}, + {3840,-290}, + {3848,-296}, + {3856,-301}, + {3864,-307}, + {3872,-313}, + {3880,-319}, + {3888,-325}, + {3896,-332}, + {3904,-338}, + {3912,-345}, + {3920,-352}, + {3928,-360}, + {3936,-368}, + {3944,-376}, + {3952,-384}, + {3960,-393}, + {3968,-403}, + {3976,-412}, + {3984,-423}, + {3992,-434}, + {4000,-446}, + {4008,-459}, + {4016,-472}, + {4024,-487}, + {4032,-504}, + {4040,-522}, + {4048,-543}, + {4056,-568}, + {4064,-597}, + {4072,-634}, + {4080,-684}, + {4088,-768} +}; // Функция расчёта сопротивления NTC из значения АЦП static float calculate_resistance(uint16_t adc_value) { @@ -149,7 +665,7 @@ static float interpolate_steinhart_full(float resistance, int index) { // Проверка на физическую реализуемость (температура должна быть положительной в Кельвинах) if (inv_T <= 0.0f || inv_T > 1.0f) { // 1/T не может быть <= 0 (T < 0K) или слишком большим // В случае ошибки возвращаем температуру из таблицы по индексу - return (float)ntc_table[index].temp_c; + return (float) ntc_table[index].temp_c; } double temp_K = 1.0f / inv_T; @@ -157,10 +673,10 @@ static float interpolate_steinhart_full(float resistance, int index) { // Дополнительная проверка диапазона (например, для NTC обычно -50...+150°C) if (temp_K < 223.15f || temp_K > 423.15f) { // -50°C...150°C в Кельвинах // Возвращаем значение из таблицы как запасной вариант - return (float)ntc_table[index].temp_c; + return (float) ntc_table[index].temp_c; } - return (float)(temp_K - 273.15f); + return (float) (temp_K - 273.15f); } // Основная функция для получения температуры @@ -190,21 +706,531 @@ float get_temperature_from_adc_KST45(uint16_t adc_value, eAlg use_alg) { } - - - // Предварительно вычисленная таблица для быстрого доступа typedef struct { uint16_t adc_value; // Значение АЦП int16_t temp_c; // Температура в °C * 10 (для фиксированной точки) } adc_temp_lookup; -static adc_temp_lookup fast_lookup[TABLE_SIZE_LOOKUP]; // Таблица на TABLE_SIZE_LOOKUP значений +static adc_temp_lookup fast_lookup[TABLE_SIZE_LOOKUP] = { + {0,-2731}, + {8,2672}, + {16,2220}, + {24,1988}, + {32,1837}, + {40,1725}, + {48,1638}, + {56,1567}, + {64,1507}, + {72,1455}, + {80,1410}, + {88,1370}, + {96,1334}, + {104,1301}, + {112,1271}, + {120,1244}, + {128,1218}, + {136,1195}, + {144,1173}, + {152,1152}, + {160,1133}, + {168,1114}, + {176,1097}, + {184,1080}, + {192,1065}, + {200,1050}, + {208,1035}, + {216,1022}, + {224,1009}, + {232,996}, + {240,984}, + {248,972}, + {256,961}, + {264,950}, + {272,940}, + {280,929}, + {288,920}, + {296,910}, + {304,901}, + {312,892}, + {320,883}, + {328,875}, + {336,866}, + {344,858}, + {352,850}, + {360,843}, + {368,835}, + {376,828}, + {384,821}, + {392,814}, + {400,807}, + {408,800}, + {416,794}, + {424,788}, + {432,781}, + {440,775}, + {448,769}, + {456,763}, + {464,758}, + {472,752}, + {480,746}, + {488,741}, + {496,735}, + {504,730}, + {512,725}, + {520,720}, + {528,715}, + {536,710}, + {544,705}, + {552,700}, + {560,695}, + {568,690}, + {576,686}, + {584,681}, + {592,677}, + {600,672}, + {608,668}, + {616,664}, + {624,659}, + {632,655}, + {640,651}, + {648,647}, + {656,643}, + {664,639}, + {672,635}, + {680,631}, + {688,627}, + {696,623}, + {704,619}, + {712,616}, + {720,612}, + {728,608}, + {736,605}, + {744,601}, + {752,598}, + {760,594}, + {768,591}, + {776,587}, + {784,584}, + {792,580}, + {800,577}, + {808,574}, + {816,571}, + {824,567}, + {832,564}, + {840,561}, + {848,558}, + {856,555}, + {864,552}, + {872,549}, + {880,546}, + {888,543}, + {896,539}, + {904,536}, + {912,534}, + {920,531}, + {928,528}, + {936,525}, + {944,522}, + {952,519}, + {960,516}, + {968,513}, + {976,511}, + {984,508}, + {992,505}, + {1000,502}, + {1008,500}, + {1016,497}, + {1024,494}, + {1032,492}, + {1040,489}, + {1048,486}, + {1056,484}, + {1064,481}, + {1072,479}, + {1080,476}, + {1088,474}, + {1096,471}, + {1104,469}, + {1112,466}, + {1120,464}, + {1128,461}, + {1136,459}, + {1144,456}, + {1152,454}, + {1160,451}, + {1168,449}, + {1176,447}, + {1184,444}, + {1192,442}, + {1200,440}, + {1208,437}, + {1216,435}, + {1224,433}, + {1232,430}, + {1240,428}, + {1248,426}, + {1256,423}, + {1264,421}, + {1272,419}, + {1280,417}, + {1288,415}, + {1296,412}, + {1304,410}, + {1312,408}, + {1320,406}, + {1328,404}, + {1336,401}, + {1344,399}, + {1352,397}, + {1360,395}, + {1368,393}, + {1376,391}, + {1384,389}, + {1392,387}, + {1400,384}, + {1408,382}, + {1416,380}, + {1424,378}, + {1432,376}, + {1440,374}, + {1448,372}, + {1456,370}, + {1464,368}, + {1472,366}, + {1480,364}, + {1488,362}, + {1496,360}, + {1504,358}, + {1512,356}, + {1520,354}, + {1528,352}, + {1536,350}, + {1544,348}, + {1552,346}, + {1560,344}, + {1568,342}, + {1576,340}, + {1584,338}, + {1592,337}, + {1600,335}, + {1608,333}, + {1616,331}, + {1624,329}, + {1632,327}, + {1640,325}, + {1648,323}, + {1656,321}, + {1664,319}, + {1672,318}, + {1680,316}, + {1688,314}, + {1696,312}, + {1704,310}, + {1712,308}, + {1720,306}, + {1728,305}, + {1736,303}, + {1744,301}, + {1752,299}, + {1760,297}, + {1768,295}, + {1776,294}, + {1784,292}, + {1792,290}, + {1800,288}, + {1808,286}, + {1816,285}, + {1824,283}, + {1832,281}, + {1840,279}, + {1848,277}, + {1856,276}, + {1864,274}, + {1872,272}, + {1880,270}, + {1888,269}, + {1896,267}, + {1904,265}, + {1912,263}, + {1920,262}, + {1928,260}, + {1936,258}, + {1944,256}, + {1952,255}, + {1960,253}, + {1968,251}, + {1976,249}, + {1984,248}, + {1992,246}, + {2000,244}, + {2008,242}, + {2016,241}, + {2024,239}, + {2032,237}, + {2040,235}, + {2048,234}, + {2056,232}, + {2064,230}, + {2072,229}, + {2080,227}, + {2088,225}, + {2096,223}, + {2104,222}, + {2112,220}, + {2120,218}, + {2128,217}, + {2136,215}, + {2144,213}, + {2152,211}, + {2160,210}, + {2168,208}, + {2176,206}, + {2184,205}, + {2192,203}, + {2200,201}, + {2208,200}, + {2216,198}, + {2224,196}, + {2232,194}, + {2240,193}, + {2248,191}, + {2256,189}, + {2264,188}, + {2272,186}, + {2280,184}, + {2288,183}, + {2296,181}, + {2304,179}, + {2312,178}, + {2320,176}, + {2328,174}, + {2336,172}, + {2344,171}, + {2352,169}, + {2360,167}, + {2368,166}, + {2376,164}, + {2384,162}, + {2392,161}, + {2400,159}, + {2408,157}, + {2416,155}, + {2424,154}, + {2432,152}, + {2440,150}, + {2448,149}, + {2456,147}, + {2464,145}, + {2472,144}, + {2480,142}, + {2488,140}, + {2496,138}, + {2504,137}, + {2512,135}, + {2520,133}, + {2528,132}, + {2536,130}, + {2544,128}, + {2552,126}, + {2560,125}, + {2568,123}, + {2576,121}, + {2584,120}, + {2592,118}, + {2600,116}, + {2608,114}, + {2616,113}, + {2624,111}, + {2632,109}, + {2640,107}, + {2648,106}, + {2656,104}, + {2664,102}, + {2672,100}, + {2680,99}, + {2688,97}, + {2696,95}, + {2704,93}, + {2712,92}, + {2720,90}, + {2728,88}, + {2736,86}, + {2744,85}, + {2752,83}, + {2760,81}, + {2768,79}, + {2776,77}, + {2784,76}, + {2792,74}, + {2800,72}, + {2808,70}, + {2816,68}, + {2824,67}, + {2832,65}, + {2840,63}, + {2848,61}, + {2856,59}, + {2864,57}, + {2872,56}, + {2880,54}, + {2888,52}, + {2896,50}, + {2904,48}, + {2912,46}, + {2920,44}, + {2928,43}, + {2936,41}, + {2944,39}, + {2952,37}, + {2960,35}, + {2968,33}, + {2976,31}, + {2984,29}, + {2992,27}, + {3000,25}, + {3008,23}, + {3016,22}, + {3024,20}, + {3032,18}, + {3040,16}, + {3048,14}, + {3056,12}, + {3064,10}, + {3072,8}, + {3080,6}, + {3088,4}, + {3096,2}, + {3104,0}, + {3112,-1}, + {3120,-4}, + {3128,-6}, + {3136,-8}, + {3144,-10}, + {3152,-12}, + {3160,-14}, + {3168,-16}, + {3176,-18}, + {3184,-20}, + {3192,-22}, + {3200,-25}, + {3208,-27}, + {3216,-29}, + {3224,-31}, + {3232,-33}, + {3240,-35}, + {3248,-38}, + {3256,-40}, + {3264,-42}, + {3272,-44}, + {3280,-47}, + {3288,-49}, + {3296,-51}, + {3304,-54}, + {3312,-56}, + {3320,-58}, + {3328,-61}, + {3336,-63}, + {3344,-65}, + {3352,-68}, + {3360,-70}, + {3368,-73}, + {3376,-75}, + {3384,-78}, + {3392,-80}, + {3400,-83}, + {3408,-85}, + {3416,-88}, + {3424,-90}, + {3432,-93}, + {3440,-95}, + {3448,-98}, + {3456,-101}, + {3464,-103}, + {3472,-106}, + {3480,-109}, + {3488,-112}, + {3496,-114}, + {3504,-117}, + {3512,-120}, + {3520,-123}, + {3528,-126}, + {3536,-129}, + {3544,-132}, + {3552,-134}, + {3560,-137}, + {3568,-140}, + {3576,-144}, + {3584,-147}, + {3592,-150}, + {3600,-153}, + {3608,-156}, + {3616,-159}, + {3624,-163}, + {3632,-166}, + {3640,-170}, + {3648,-173}, + {3656,-176}, + {3664,-180}, + {3672,-184}, + {3680,-187}, + {3688,-191}, + {3696,-195}, + {3704,-198}, + {3712,-202}, + {3720,-206}, + {3728,-210}, + {3736,-214}, + {3744,-218}, + {3752,-222}, + {3760,-227}, + {3768,-231}, + {3776,-236}, + {3784,-240}, + {3792,-245}, + {3800,-249}, + {3808,-254}, + {3816,-259}, + {3824,-264}, + {3832,-270}, + {3840,-275}, + {3848,-280}, + {3856,-286}, + {3864,-292}, + {3872,-298}, + {3880,-304}, + {3888,-310}, + {3896,-317}, + {3904,-323}, + {3912,-330}, + {3920,-338}, + {3928,-345}, + {3936,-353}, + {3944,-361}, + {3952,-370}, + {3960,-379}, + {3968,-388}, + {3976,-398}, + {3984,-409}, + {3992,-420}, + {4000,-432}, + {4008,-445}, + {4016,-459}, + {4024,-474}, + {4032,-491}, + {4040,-510}, + {4048,-531}, + {4056,-556}, + {4064,-585}, + {4072,-622}, + {4080,-673}, + {4088,-758}, +}; // Таблица на TABLE_SIZE_LOOKUP значений void init_fast_lookup_table(eAlg use_alg) { // Создаем таблицу для быстрого преобразования АЦП->температура for (uint16_t i = 0; i < TABLE_SIZE_LOOKUP; i++) { - uint16_t adc = i * (uint8_t)roundf(ADC_MAX / (TABLE_SIZE_LOOKUP - 1)); // Для 12-битного АЦП (0-4095) + uint16_t adc = i * (uint8_t) roundf(ADC_MAX / (TABLE_SIZE_LOOKUP - 1)); // Для 12-битного АЦП (0-4095) float temp = get_temperature_from_adc_KST45(adc, use_alg); fast_lookup[i].adc_value = adc; fast_lookup[i].temp_c = (int16_t) (temp * 10.0f); // Храним с точностью 0.1°C @@ -213,7 +1239,8 @@ void init_fast_lookup_table(eAlg use_alg) { int16_t get_temperature_fast_KST45(uint16_t adc_value) { // Простой поиск в таблице с линейной интерполяцией - uint16_t index = adc_value / (uint8_t)roundf(ADC_MAX / (TABLE_SIZE_LOOKUP - 1)); // Делим на 16 для TABLE_SIZE_LOOKUP = 256 + uint16_t index = + adc_value / (uint8_t) roundf(ADC_MAX / (TABLE_SIZE_LOOKUP - 1)); // Делим на 16 для TABLE_SIZE_LOOKUP = 256 if (index >= (TABLE_SIZE_LOOKUP - 1)) return fast_lookup[TABLE_SIZE_LOOKUP - 1].temp_c; uint16_t adc1 = fast_lookup[index].adc_value;