Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP
Fork of SystemManagement by
Diff: Temperature_Read/TemperatureRead.h
- Revision:
- 0:e516fcccccda
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Temperature_Read/TemperatureRead.h Wed Oct 01 12:52:26 2014 +0000
@@ -0,0 +1,271 @@
+/*
+Test Code
+#include "mbed.h"
+#include "TemperatureRead.h"
+
+AnalogIn Vin(p15);
+int main()
+{
+ float resistance,temperature,Vadc=0;
+ while(1)
+ {
+ Vadc=Vin.read()*VDD;
+ //printf("Vadc:%f\n\r",Vadc);
+ while(Vadc>0)
+ {
+ Vadc=Vin.read()*VDD;
+ printf("Vadc:%f\n\r",Vadc);
+ resistance=((float)R10K*Vadc)/((float)VDD + Vadc);
+ temperature=ReadTemp(TR_USP10982_Map, resistance, TABLE_SIZE_USP10982);
+ printf("Resistance:%f \n\r",resistance);
+ printf("Temperature:%f \n\r",temperature);
+ wait(0.5);
+ }
+ }
+}
+*/
+#ifndef _TEMPERATURE_READ_
+#define _TEMPERATURE_READ_
+
+#define TABLE_SIZE_NXFT15XH103FA 34
+#define TABLE_SIZE_NTCLP00E3103H 26
+#define TABLE_SIZE_USP10982 121
+#define R10K 10 //Consider Resistance in Kohms
+#define VDD 3.33
+typedef struct
+{
+ float x;
+ float y;
+}Temp_Resistance;
+
+Temp_Resistance TR_NXFT15XH103FA_Map[TABLE_SIZE_NXFT15XH103FA] ={
+ { .x= 197.388 , .y= -40 },
+ { .x= 149.395 , .y= -35 },
+ { .x= 114.345 , .y= -30 },
+ { .x= 88.381 , .y= -25 },
+ { .x= 68.915 , .y= -20 },
+ { .x= 54.166 , .y= -15 },
+ { .x= 42.889 , .y= -10 },
+ { .x= 34.196 , .y= -5 },
+ { .x= 27.445 , .y= 0 },
+ { .x= 22.165 , .y= 5 },
+ { .x= 18.01 , .y= 10 },
+ { .x= 14.72 , .y= 15 },
+ { .x= 12.099 , .y= 20 },
+ { .x= 10 , .y= 25 },
+ { .x= 8.309 , .y= 30 },
+ { .x= 6.939 , .y= 35 },
+ { .x= 5.824 , .y= 40 },
+ { .x= 4.911 , .y= 45 },
+ { .x= 4.16 , .y= 50 },
+ { .x= 3.539 , .y= 55 },
+ { .x= 3.024 , .y= 60 },
+ { .x= 2.593 , .y= 65 },
+ { .x= 2.233 , .y= 70 },
+ { .x= 1.929 , .y= 75 },
+ { .x= 1.673 , .y= 80 },
+ { .x= 1.455 , .y= 85 },
+ { .x= 1.27 , .y= 90 },
+ { .x= 1.112 , .y= 95 },
+ { .x= 0.976 , .y= 100 },
+ { .x= 0.86 , .y= 105 },
+ { .x= 0.759 , .y= 110 },
+ { .x= 0.673 , .y= 115 },
+ { .x= 0.598 , .y= 120 },
+ { .x= 0.532 , .y= 125 },
+ };
+
+Temp_Resistance TR_NTCLP00E3103H_Map[TABLE_SIZE_NTCLP00E3103H] ={
+ { .x= 332.094 , .y= -40 },
+ { .x= 239.9 , .y= -35 },
+ { .x= 175.2 , .y= -30 },
+ { .x= 129.287 , .y= -25 },
+ { .x= 96.358 , .y= -20 },
+ { .x= 72.5 , .y= -15 },
+ { .x= 55.046 , .y= -10 },
+ { .x= 42.157 , .y= -5 },
+ { .x= 32.554 , .y= 0 },
+ { .x= 25.339 , .y= 5 },
+ { .x= 19.872 , .y= 10 },
+ { .x= 15.698 , .y= 15 },
+ { .x= 12.488 , .y= 20 },
+ { .x= 10 , .y= 25 },
+ { .x= 8.059 , .y= 30 },
+ { .x= 6.535 , .y= 35 },
+ { .x= 5.33 , .y= 40 },
+ { .x= 4.372 , .y= 45 },
+ { .x= 3.605 , .y= 50 },
+ { .x= 2.989 , .y= 55 },
+ { .x= 2.49 , .y= 60 },
+ { .x= 2.084 , .y= 65 },
+ { .x= 1.753 , .y= 70 },
+ { .x= 1.481 , .y= 75 },
+ { .x= 1.256 , .y= 80 },
+ { .x= 1.07 , .y= 85 },
+
+ };
+
+Temp_Resistance TR_USP10982_Map[TABLE_SIZE_USP10982] ={
+ { .x= 336.479 , .y= -40 },
+ { .x= 314.904 , .y= -39 },
+ { .x= 294.848 , .y= -38 },
+ { .x= 276.194 , .y= -37 },
+ { .x= 258.838 , .y= -36 },
+ { .x= 242.681 , .y= -35 },
+ { .x= 227.632 , .y= -34 },
+ { .x= 213.61 , .y= -33 },
+ { .x= 200.539 , .y= -32 },
+ { .x= 188.349 , .y= -31 },
+ { .x= 176.974 , .y= -30 },
+ { .x= 166.356 , .y= -29 },
+ { .x= 156.441 , .y= -28 },
+ { .x= 147.177 , .y= -27 },
+ { .x= 138.518 , .y= -26 },
+ { .x= 130.421 , .y= -25 },
+ { .x= 122.847 , .y= -24 },
+ { .x= 115.759 , .y= -23 },
+ { .x= 109.122 , .y= -22 },
+ { .x= 102.906 , .y= -21 },
+ { .x= 97.081 , .y= -20 },
+ { .x= 91.621 , .y= -19 },
+ { .x= 86.501 , .y= -18 },
+ { .x= 81.698 , .y= -17 },
+ { .x= 77.19 , .y= -16 },
+ { .x= 72.957 , .y= -15 },
+ { .x= 68.982 , .y= -14 },
+ { .x= 65.246 , .y= -13 },
+ { .x= 61.736 , .y= -12 },
+ { .x= 58.434 , .y= -11 },
+ { .x= 55.329 , .y= -10 },
+ { .x= 52.407 , .y= -9 },
+ { .x= 49.656 , .y= -8 },
+ { .x= 47.066 , .y= -7 },
+ { .x= 44.626 , .y= -6 },
+ { .x= 42.327 , .y= -5 },
+ { .x= 40.159 , .y= -4 },
+ { .x= 38.115 , .y= -3 },
+ { .x= 36.187 , .y= -2 },
+ { .x= 34.368 , .y= -1 },
+ { .x= 32.65 , .y= 0 },
+ { .x= 31.029 , .y= 1 },
+ { .x= 29.498 , .y= 2 },
+ { .x= 28.052 , .y= 3 },
+ { .x= 26.685 , .y= 4 },
+ { .x= 25.392 , .y= 5 },
+ { .x= 24.17 , .y= 6 },
+ { .x= 23.013 , .y= 7 },
+ { .x= 21.918 , .y= 8 },
+ { .x= 20.882 , .y= 9 },
+ { .x= 19.901 , .y= 10 },
+ { .x= 18.971 , .y= 11 },
+ { .x= 18.09 , .y= 12 },
+ { .x= 17.255 , .y= 13 },
+ { .x= 16.463 , .y= 14 },
+ { .x= 15.712 , .y= 15 },
+ { .x= 14.999 , .y= 16 },
+ { .x= 14.323 , .y= 17 },
+ { .x= 13.681 , .y= 18 },
+ { .x= 13.072 , .y= 19 },
+ { .x= 12.493 , .y= 20 },
+ { .x= 11.942 , .y= 21 },
+ { .x= 11.419 , .y= 22 },
+ { .x= 10.922 , .y= 23 },
+ { .x= 10.45 , .y= 24 },
+ { .x= 10 , .y= 25 },
+ { .x= 9.572 , .y= 26 },
+ { .x= 9.165 , .y= 27 },
+ { .x= 8.777 , .y= 28 },
+ { .x= 8.408 , .y= 29 },
+ { .x= 8.057 , .y= 30 },
+ { .x= 7.722 , .y= 31 },
+ { .x= 7.402 , .y= 32 },
+ { .x= 7.098 , .y= 33 },
+ { .x= 6.808 , .y= 34 },
+ { .x= 6.531 , .y= 35 },
+ { .x= 6.267 , .y= 36 },
+ { .x= 6.015 , .y= 37 },
+ { .x= 5.775 , .y= 38 },
+ { .x= 5.545 , .y= 39 },
+ { .x= 5.326 , .y= 40 },
+ { .x= 5.117 , .y= 41 },
+ { .x= 4.917 , .y= 42 },
+ { .x= 4.725 , .y= 43 },
+ { .x= 4.543 , .y= 44 },
+ { .x= 4.368 , .y= 45 },
+ { .x= 4.201 , .y= 46 },
+ { .x= 4.041 , .y= 47 },
+ { .x= 3.888 , .y= 48 },
+ { .x= 3.742 , .y= 49 },
+ { .x= 3.602 , .y= 50 },
+ { .x= 3.468 , .y= 51 },
+ { .x= 3.34 , .y= 52 },
+ { .x= 3.217 , .y= 53 },
+ { .x= 3.099 , .y= 54 },
+ { .x= 2.986 , .y= 55 },
+ { .x= 2.878 , .y= 56 },
+ { .x= 2.774 , .y= 57 },
+ { .x= 2.675 , .y= 58 },
+ { .x= 2.579 , .y= 59 },
+ { .x= 2.488 , .y= 60 },
+ { .x= 2.4 , .y= 61 },
+ { .x= 2.316 , .y= 62 },
+ { .x= 2.235 , .y= 63 },
+ { .x= 2.157 , .y= 64 },
+ { .x= 2.083 , .y= 65 },
+ { .x= 2.011 , .y= 66 },
+ { .x= 1.942 , .y= 67 },
+ { .x= 1.876 , .y= 68 },
+ { .x= 1.813 , .y= 69 },
+ { .x= 1.752 , .y= 70 },
+ { .x= 1.693 , .y= 71 },
+ { .x= 1.637 , .y= 72 },
+ { .x= 1.582 , .y= 73 },
+ { .x= 1.53 , .y= 74 },
+ { .x= 1.48 , .y= 75 },
+ { .x= 1.432 , .y= 76 },
+ { .x= 1.385 , .y= 77 },
+ { .x= 1.34 , .y= 78 },
+ { .x= 1.297 , .y= 79 },
+ { .x= 1.255 , .y= 80 },
+ };
+
+float ReadTemp(const Temp_Resistance *table, float value, size_t SIZE)
+{
+ //Search using Binary Search. Logarithmic passes
+ int result=SIZE, slope=0;
+ size_t firstPos=0;
+ size_t lastPos=SIZE;
+ size_t middlePos=0;
+ size_t temp_mid=1;
+ //printf("Value:%f\n\r",value);
+ while(temp_mid!=middlePos)
+ {
+ temp_mid=middlePos;
+ middlePos = firstPos + (lastPos-firstPos)/2;
+ if(table[middlePos].x == value)
+ {
+ lastPos = middlePos;
+ result = middlePos;
+ }
+
+ if(table[middlePos].x < value)
+ {
+ lastPos = middlePos;
+ result = middlePos;
+ }
+
+ else if(table[middlePos].x > value)
+ {
+ firstPos = middlePos;
+ }
+ }
+ //printf("Result:%d\n\r",result);
+ if(result == 0)
+ return table[result].y;
+ else if(result == SIZE)
+ return table[result - 1].y;
+
+ slope = (table[result].y - table[result-1].y)/(table[result].x - table[result-1].x);
+ return (slope*(value - table[result].x) + table[result].y);
+}
+#endif /*_TEMPERATURE_READ_*/
\ No newline at end of file
