System Management code
Dependencies: CANBuffer mbed SystemManagement mbed-rtos
System Management code for Penn Electric Racing
Functions:
Controls Fans and Pumps via instruction from CAN Messages, ramps them up over time to prevent damage
Turns on/off DC-DC converter via instruction from CAN Messages
Temperature_Read/TemperatureRead.h@0:e516fcccccda, 2014-10-01 (annotated)
- Committer:
- martydd3
- Date:
- Wed Oct 01 12:52:26 2014 +0000
- Revision:
- 0:e516fcccccda
Added LPCDigitalOut, LPCDigitalIn, and CANBuffer Libaries; Comments on code in SysMngmt.cpp involving register and pin access; Note: LPCDigitalOut.h defines a void mode(PinMode) which isn't in LPCDigitalOut.cpp, causes a linking error if used
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
martydd3 | 0:e516fcccccda | 1 | /* |
martydd3 | 0:e516fcccccda | 2 | Test Code |
martydd3 | 0:e516fcccccda | 3 | #include "mbed.h" |
martydd3 | 0:e516fcccccda | 4 | #include "TemperatureRead.h" |
martydd3 | 0:e516fcccccda | 5 | |
martydd3 | 0:e516fcccccda | 6 | AnalogIn Vin(p15); |
martydd3 | 0:e516fcccccda | 7 | int main() |
martydd3 | 0:e516fcccccda | 8 | { |
martydd3 | 0:e516fcccccda | 9 | float resistance,temperature,Vadc=0; |
martydd3 | 0:e516fcccccda | 10 | while(1) |
martydd3 | 0:e516fcccccda | 11 | { |
martydd3 | 0:e516fcccccda | 12 | Vadc=Vin.read()*VDD; |
martydd3 | 0:e516fcccccda | 13 | //printf("Vadc:%f\n\r",Vadc); |
martydd3 | 0:e516fcccccda | 14 | while(Vadc>0) |
martydd3 | 0:e516fcccccda | 15 | { |
martydd3 | 0:e516fcccccda | 16 | Vadc=Vin.read()*VDD; |
martydd3 | 0:e516fcccccda | 17 | printf("Vadc:%f\n\r",Vadc); |
martydd3 | 0:e516fcccccda | 18 | resistance=((float)R10K*Vadc)/((float)VDD + Vadc); |
martydd3 | 0:e516fcccccda | 19 | temperature=ReadTemp(TR_USP10982_Map, resistance, TABLE_SIZE_USP10982); |
martydd3 | 0:e516fcccccda | 20 | printf("Resistance:%f \n\r",resistance); |
martydd3 | 0:e516fcccccda | 21 | printf("Temperature:%f \n\r",temperature); |
martydd3 | 0:e516fcccccda | 22 | wait(0.5); |
martydd3 | 0:e516fcccccda | 23 | } |
martydd3 | 0:e516fcccccda | 24 | } |
martydd3 | 0:e516fcccccda | 25 | } |
martydd3 | 0:e516fcccccda | 26 | */ |
martydd3 | 0:e516fcccccda | 27 | #ifndef _TEMPERATURE_READ_ |
martydd3 | 0:e516fcccccda | 28 | #define _TEMPERATURE_READ_ |
martydd3 | 0:e516fcccccda | 29 | |
martydd3 | 0:e516fcccccda | 30 | #define TABLE_SIZE_NXFT15XH103FA 34 |
martydd3 | 0:e516fcccccda | 31 | #define TABLE_SIZE_NTCLP00E3103H 26 |
martydd3 | 0:e516fcccccda | 32 | #define TABLE_SIZE_USP10982 121 |
martydd3 | 0:e516fcccccda | 33 | #define R10K 10 //Consider Resistance in Kohms |
martydd3 | 0:e516fcccccda | 34 | #define VDD 3.33 |
martydd3 | 0:e516fcccccda | 35 | typedef struct |
martydd3 | 0:e516fcccccda | 36 | { |
martydd3 | 0:e516fcccccda | 37 | float x; |
martydd3 | 0:e516fcccccda | 38 | float y; |
martydd3 | 0:e516fcccccda | 39 | }Temp_Resistance; |
martydd3 | 0:e516fcccccda | 40 | |
martydd3 | 0:e516fcccccda | 41 | Temp_Resistance TR_NXFT15XH103FA_Map[TABLE_SIZE_NXFT15XH103FA] ={ |
martydd3 | 0:e516fcccccda | 42 | { .x= 197.388 , .y= -40 }, |
martydd3 | 0:e516fcccccda | 43 | { .x= 149.395 , .y= -35 }, |
martydd3 | 0:e516fcccccda | 44 | { .x= 114.345 , .y= -30 }, |
martydd3 | 0:e516fcccccda | 45 | { .x= 88.381 , .y= -25 }, |
martydd3 | 0:e516fcccccda | 46 | { .x= 68.915 , .y= -20 }, |
martydd3 | 0:e516fcccccda | 47 | { .x= 54.166 , .y= -15 }, |
martydd3 | 0:e516fcccccda | 48 | { .x= 42.889 , .y= -10 }, |
martydd3 | 0:e516fcccccda | 49 | { .x= 34.196 , .y= -5 }, |
martydd3 | 0:e516fcccccda | 50 | { .x= 27.445 , .y= 0 }, |
martydd3 | 0:e516fcccccda | 51 | { .x= 22.165 , .y= 5 }, |
martydd3 | 0:e516fcccccda | 52 | { .x= 18.01 , .y= 10 }, |
martydd3 | 0:e516fcccccda | 53 | { .x= 14.72 , .y= 15 }, |
martydd3 | 0:e516fcccccda | 54 | { .x= 12.099 , .y= 20 }, |
martydd3 | 0:e516fcccccda | 55 | { .x= 10 , .y= 25 }, |
martydd3 | 0:e516fcccccda | 56 | { .x= 8.309 , .y= 30 }, |
martydd3 | 0:e516fcccccda | 57 | { .x= 6.939 , .y= 35 }, |
martydd3 | 0:e516fcccccda | 58 | { .x= 5.824 , .y= 40 }, |
martydd3 | 0:e516fcccccda | 59 | { .x= 4.911 , .y= 45 }, |
martydd3 | 0:e516fcccccda | 60 | { .x= 4.16 , .y= 50 }, |
martydd3 | 0:e516fcccccda | 61 | { .x= 3.539 , .y= 55 }, |
martydd3 | 0:e516fcccccda | 62 | { .x= 3.024 , .y= 60 }, |
martydd3 | 0:e516fcccccda | 63 | { .x= 2.593 , .y= 65 }, |
martydd3 | 0:e516fcccccda | 64 | { .x= 2.233 , .y= 70 }, |
martydd3 | 0:e516fcccccda | 65 | { .x= 1.929 , .y= 75 }, |
martydd3 | 0:e516fcccccda | 66 | { .x= 1.673 , .y= 80 }, |
martydd3 | 0:e516fcccccda | 67 | { .x= 1.455 , .y= 85 }, |
martydd3 | 0:e516fcccccda | 68 | { .x= 1.27 , .y= 90 }, |
martydd3 | 0:e516fcccccda | 69 | { .x= 1.112 , .y= 95 }, |
martydd3 | 0:e516fcccccda | 70 | { .x= 0.976 , .y= 100 }, |
martydd3 | 0:e516fcccccda | 71 | { .x= 0.86 , .y= 105 }, |
martydd3 | 0:e516fcccccda | 72 | { .x= 0.759 , .y= 110 }, |
martydd3 | 0:e516fcccccda | 73 | { .x= 0.673 , .y= 115 }, |
martydd3 | 0:e516fcccccda | 74 | { .x= 0.598 , .y= 120 }, |
martydd3 | 0:e516fcccccda | 75 | { .x= 0.532 , .y= 125 }, |
martydd3 | 0:e516fcccccda | 76 | }; |
martydd3 | 0:e516fcccccda | 77 | |
martydd3 | 0:e516fcccccda | 78 | Temp_Resistance TR_NTCLP00E3103H_Map[TABLE_SIZE_NTCLP00E3103H] ={ |
martydd3 | 0:e516fcccccda | 79 | { .x= 332.094 , .y= -40 }, |
martydd3 | 0:e516fcccccda | 80 | { .x= 239.9 , .y= -35 }, |
martydd3 | 0:e516fcccccda | 81 | { .x= 175.2 , .y= -30 }, |
martydd3 | 0:e516fcccccda | 82 | { .x= 129.287 , .y= -25 }, |
martydd3 | 0:e516fcccccda | 83 | { .x= 96.358 , .y= -20 }, |
martydd3 | 0:e516fcccccda | 84 | { .x= 72.5 , .y= -15 }, |
martydd3 | 0:e516fcccccda | 85 | { .x= 55.046 , .y= -10 }, |
martydd3 | 0:e516fcccccda | 86 | { .x= 42.157 , .y= -5 }, |
martydd3 | 0:e516fcccccda | 87 | { .x= 32.554 , .y= 0 }, |
martydd3 | 0:e516fcccccda | 88 | { .x= 25.339 , .y= 5 }, |
martydd3 | 0:e516fcccccda | 89 | { .x= 19.872 , .y= 10 }, |
martydd3 | 0:e516fcccccda | 90 | { .x= 15.698 , .y= 15 }, |
martydd3 | 0:e516fcccccda | 91 | { .x= 12.488 , .y= 20 }, |
martydd3 | 0:e516fcccccda | 92 | { .x= 10 , .y= 25 }, |
martydd3 | 0:e516fcccccda | 93 | { .x= 8.059 , .y= 30 }, |
martydd3 | 0:e516fcccccda | 94 | { .x= 6.535 , .y= 35 }, |
martydd3 | 0:e516fcccccda | 95 | { .x= 5.33 , .y= 40 }, |
martydd3 | 0:e516fcccccda | 96 | { .x= 4.372 , .y= 45 }, |
martydd3 | 0:e516fcccccda | 97 | { .x= 3.605 , .y= 50 }, |
martydd3 | 0:e516fcccccda | 98 | { .x= 2.989 , .y= 55 }, |
martydd3 | 0:e516fcccccda | 99 | { .x= 2.49 , .y= 60 }, |
martydd3 | 0:e516fcccccda | 100 | { .x= 2.084 , .y= 65 }, |
martydd3 | 0:e516fcccccda | 101 | { .x= 1.753 , .y= 70 }, |
martydd3 | 0:e516fcccccda | 102 | { .x= 1.481 , .y= 75 }, |
martydd3 | 0:e516fcccccda | 103 | { .x= 1.256 , .y= 80 }, |
martydd3 | 0:e516fcccccda | 104 | { .x= 1.07 , .y= 85 }, |
martydd3 | 0:e516fcccccda | 105 | |
martydd3 | 0:e516fcccccda | 106 | }; |
martydd3 | 0:e516fcccccda | 107 | |
martydd3 | 0:e516fcccccda | 108 | Temp_Resistance TR_USP10982_Map[TABLE_SIZE_USP10982] ={ |
martydd3 | 0:e516fcccccda | 109 | { .x= 336.479 , .y= -40 }, |
martydd3 | 0:e516fcccccda | 110 | { .x= 314.904 , .y= -39 }, |
martydd3 | 0:e516fcccccda | 111 | { .x= 294.848 , .y= -38 }, |
martydd3 | 0:e516fcccccda | 112 | { .x= 276.194 , .y= -37 }, |
martydd3 | 0:e516fcccccda | 113 | { .x= 258.838 , .y= -36 }, |
martydd3 | 0:e516fcccccda | 114 | { .x= 242.681 , .y= -35 }, |
martydd3 | 0:e516fcccccda | 115 | { .x= 227.632 , .y= -34 }, |
martydd3 | 0:e516fcccccda | 116 | { .x= 213.61 , .y= -33 }, |
martydd3 | 0:e516fcccccda | 117 | { .x= 200.539 , .y= -32 }, |
martydd3 | 0:e516fcccccda | 118 | { .x= 188.349 , .y= -31 }, |
martydd3 | 0:e516fcccccda | 119 | { .x= 176.974 , .y= -30 }, |
martydd3 | 0:e516fcccccda | 120 | { .x= 166.356 , .y= -29 }, |
martydd3 | 0:e516fcccccda | 121 | { .x= 156.441 , .y= -28 }, |
martydd3 | 0:e516fcccccda | 122 | { .x= 147.177 , .y= -27 }, |
martydd3 | 0:e516fcccccda | 123 | { .x= 138.518 , .y= -26 }, |
martydd3 | 0:e516fcccccda | 124 | { .x= 130.421 , .y= -25 }, |
martydd3 | 0:e516fcccccda | 125 | { .x= 122.847 , .y= -24 }, |
martydd3 | 0:e516fcccccda | 126 | { .x= 115.759 , .y= -23 }, |
martydd3 | 0:e516fcccccda | 127 | { .x= 109.122 , .y= -22 }, |
martydd3 | 0:e516fcccccda | 128 | { .x= 102.906 , .y= -21 }, |
martydd3 | 0:e516fcccccda | 129 | { .x= 97.081 , .y= -20 }, |
martydd3 | 0:e516fcccccda | 130 | { .x= 91.621 , .y= -19 }, |
martydd3 | 0:e516fcccccda | 131 | { .x= 86.501 , .y= -18 }, |
martydd3 | 0:e516fcccccda | 132 | { .x= 81.698 , .y= -17 }, |
martydd3 | 0:e516fcccccda | 133 | { .x= 77.19 , .y= -16 }, |
martydd3 | 0:e516fcccccda | 134 | { .x= 72.957 , .y= -15 }, |
martydd3 | 0:e516fcccccda | 135 | { .x= 68.982 , .y= -14 }, |
martydd3 | 0:e516fcccccda | 136 | { .x= 65.246 , .y= -13 }, |
martydd3 | 0:e516fcccccda | 137 | { .x= 61.736 , .y= -12 }, |
martydd3 | 0:e516fcccccda | 138 | { .x= 58.434 , .y= -11 }, |
martydd3 | 0:e516fcccccda | 139 | { .x= 55.329 , .y= -10 }, |
martydd3 | 0:e516fcccccda | 140 | { .x= 52.407 , .y= -9 }, |
martydd3 | 0:e516fcccccda | 141 | { .x= 49.656 , .y= -8 }, |
martydd3 | 0:e516fcccccda | 142 | { .x= 47.066 , .y= -7 }, |
martydd3 | 0:e516fcccccda | 143 | { .x= 44.626 , .y= -6 }, |
martydd3 | 0:e516fcccccda | 144 | { .x= 42.327 , .y= -5 }, |
martydd3 | 0:e516fcccccda | 145 | { .x= 40.159 , .y= -4 }, |
martydd3 | 0:e516fcccccda | 146 | { .x= 38.115 , .y= -3 }, |
martydd3 | 0:e516fcccccda | 147 | { .x= 36.187 , .y= -2 }, |
martydd3 | 0:e516fcccccda | 148 | { .x= 34.368 , .y= -1 }, |
martydd3 | 0:e516fcccccda | 149 | { .x= 32.65 , .y= 0 }, |
martydd3 | 0:e516fcccccda | 150 | { .x= 31.029 , .y= 1 }, |
martydd3 | 0:e516fcccccda | 151 | { .x= 29.498 , .y= 2 }, |
martydd3 | 0:e516fcccccda | 152 | { .x= 28.052 , .y= 3 }, |
martydd3 | 0:e516fcccccda | 153 | { .x= 26.685 , .y= 4 }, |
martydd3 | 0:e516fcccccda | 154 | { .x= 25.392 , .y= 5 }, |
martydd3 | 0:e516fcccccda | 155 | { .x= 24.17 , .y= 6 }, |
martydd3 | 0:e516fcccccda | 156 | { .x= 23.013 , .y= 7 }, |
martydd3 | 0:e516fcccccda | 157 | { .x= 21.918 , .y= 8 }, |
martydd3 | 0:e516fcccccda | 158 | { .x= 20.882 , .y= 9 }, |
martydd3 | 0:e516fcccccda | 159 | { .x= 19.901 , .y= 10 }, |
martydd3 | 0:e516fcccccda | 160 | { .x= 18.971 , .y= 11 }, |
martydd3 | 0:e516fcccccda | 161 | { .x= 18.09 , .y= 12 }, |
martydd3 | 0:e516fcccccda | 162 | { .x= 17.255 , .y= 13 }, |
martydd3 | 0:e516fcccccda | 163 | { .x= 16.463 , .y= 14 }, |
martydd3 | 0:e516fcccccda | 164 | { .x= 15.712 , .y= 15 }, |
martydd3 | 0:e516fcccccda | 165 | { .x= 14.999 , .y= 16 }, |
martydd3 | 0:e516fcccccda | 166 | { .x= 14.323 , .y= 17 }, |
martydd3 | 0:e516fcccccda | 167 | { .x= 13.681 , .y= 18 }, |
martydd3 | 0:e516fcccccda | 168 | { .x= 13.072 , .y= 19 }, |
martydd3 | 0:e516fcccccda | 169 | { .x= 12.493 , .y= 20 }, |
martydd3 | 0:e516fcccccda | 170 | { .x= 11.942 , .y= 21 }, |
martydd3 | 0:e516fcccccda | 171 | { .x= 11.419 , .y= 22 }, |
martydd3 | 0:e516fcccccda | 172 | { .x= 10.922 , .y= 23 }, |
martydd3 | 0:e516fcccccda | 173 | { .x= 10.45 , .y= 24 }, |
martydd3 | 0:e516fcccccda | 174 | { .x= 10 , .y= 25 }, |
martydd3 | 0:e516fcccccda | 175 | { .x= 9.572 , .y= 26 }, |
martydd3 | 0:e516fcccccda | 176 | { .x= 9.165 , .y= 27 }, |
martydd3 | 0:e516fcccccda | 177 | { .x= 8.777 , .y= 28 }, |
martydd3 | 0:e516fcccccda | 178 | { .x= 8.408 , .y= 29 }, |
martydd3 | 0:e516fcccccda | 179 | { .x= 8.057 , .y= 30 }, |
martydd3 | 0:e516fcccccda | 180 | { .x= 7.722 , .y= 31 }, |
martydd3 | 0:e516fcccccda | 181 | { .x= 7.402 , .y= 32 }, |
martydd3 | 0:e516fcccccda | 182 | { .x= 7.098 , .y= 33 }, |
martydd3 | 0:e516fcccccda | 183 | { .x= 6.808 , .y= 34 }, |
martydd3 | 0:e516fcccccda | 184 | { .x= 6.531 , .y= 35 }, |
martydd3 | 0:e516fcccccda | 185 | { .x= 6.267 , .y= 36 }, |
martydd3 | 0:e516fcccccda | 186 | { .x= 6.015 , .y= 37 }, |
martydd3 | 0:e516fcccccda | 187 | { .x= 5.775 , .y= 38 }, |
martydd3 | 0:e516fcccccda | 188 | { .x= 5.545 , .y= 39 }, |
martydd3 | 0:e516fcccccda | 189 | { .x= 5.326 , .y= 40 }, |
martydd3 | 0:e516fcccccda | 190 | { .x= 5.117 , .y= 41 }, |
martydd3 | 0:e516fcccccda | 191 | { .x= 4.917 , .y= 42 }, |
martydd3 | 0:e516fcccccda | 192 | { .x= 4.725 , .y= 43 }, |
martydd3 | 0:e516fcccccda | 193 | { .x= 4.543 , .y= 44 }, |
martydd3 | 0:e516fcccccda | 194 | { .x= 4.368 , .y= 45 }, |
martydd3 | 0:e516fcccccda | 195 | { .x= 4.201 , .y= 46 }, |
martydd3 | 0:e516fcccccda | 196 | { .x= 4.041 , .y= 47 }, |
martydd3 | 0:e516fcccccda | 197 | { .x= 3.888 , .y= 48 }, |
martydd3 | 0:e516fcccccda | 198 | { .x= 3.742 , .y= 49 }, |
martydd3 | 0:e516fcccccda | 199 | { .x= 3.602 , .y= 50 }, |
martydd3 | 0:e516fcccccda | 200 | { .x= 3.468 , .y= 51 }, |
martydd3 | 0:e516fcccccda | 201 | { .x= 3.34 , .y= 52 }, |
martydd3 | 0:e516fcccccda | 202 | { .x= 3.217 , .y= 53 }, |
martydd3 | 0:e516fcccccda | 203 | { .x= 3.099 , .y= 54 }, |
martydd3 | 0:e516fcccccda | 204 | { .x= 2.986 , .y= 55 }, |
martydd3 | 0:e516fcccccda | 205 | { .x= 2.878 , .y= 56 }, |
martydd3 | 0:e516fcccccda | 206 | { .x= 2.774 , .y= 57 }, |
martydd3 | 0:e516fcccccda | 207 | { .x= 2.675 , .y= 58 }, |
martydd3 | 0:e516fcccccda | 208 | { .x= 2.579 , .y= 59 }, |
martydd3 | 0:e516fcccccda | 209 | { .x= 2.488 , .y= 60 }, |
martydd3 | 0:e516fcccccda | 210 | { .x= 2.4 , .y= 61 }, |
martydd3 | 0:e516fcccccda | 211 | { .x= 2.316 , .y= 62 }, |
martydd3 | 0:e516fcccccda | 212 | { .x= 2.235 , .y= 63 }, |
martydd3 | 0:e516fcccccda | 213 | { .x= 2.157 , .y= 64 }, |
martydd3 | 0:e516fcccccda | 214 | { .x= 2.083 , .y= 65 }, |
martydd3 | 0:e516fcccccda | 215 | { .x= 2.011 , .y= 66 }, |
martydd3 | 0:e516fcccccda | 216 | { .x= 1.942 , .y= 67 }, |
martydd3 | 0:e516fcccccda | 217 | { .x= 1.876 , .y= 68 }, |
martydd3 | 0:e516fcccccda | 218 | { .x= 1.813 , .y= 69 }, |
martydd3 | 0:e516fcccccda | 219 | { .x= 1.752 , .y= 70 }, |
martydd3 | 0:e516fcccccda | 220 | { .x= 1.693 , .y= 71 }, |
martydd3 | 0:e516fcccccda | 221 | { .x= 1.637 , .y= 72 }, |
martydd3 | 0:e516fcccccda | 222 | { .x= 1.582 , .y= 73 }, |
martydd3 | 0:e516fcccccda | 223 | { .x= 1.53 , .y= 74 }, |
martydd3 | 0:e516fcccccda | 224 | { .x= 1.48 , .y= 75 }, |
martydd3 | 0:e516fcccccda | 225 | { .x= 1.432 , .y= 76 }, |
martydd3 | 0:e516fcccccda | 226 | { .x= 1.385 , .y= 77 }, |
martydd3 | 0:e516fcccccda | 227 | { .x= 1.34 , .y= 78 }, |
martydd3 | 0:e516fcccccda | 228 | { .x= 1.297 , .y= 79 }, |
martydd3 | 0:e516fcccccda | 229 | { .x= 1.255 , .y= 80 }, |
martydd3 | 0:e516fcccccda | 230 | }; |
martydd3 | 0:e516fcccccda | 231 | |
martydd3 | 0:e516fcccccda | 232 | float ReadTemp(const Temp_Resistance *table, float value, size_t SIZE) |
martydd3 | 0:e516fcccccda | 233 | { |
martydd3 | 0:e516fcccccda | 234 | //Search using Binary Search. Logarithmic passes |
martydd3 | 0:e516fcccccda | 235 | int result=SIZE, slope=0; |
martydd3 | 0:e516fcccccda | 236 | size_t firstPos=0; |
martydd3 | 0:e516fcccccda | 237 | size_t lastPos=SIZE; |
martydd3 | 0:e516fcccccda | 238 | size_t middlePos=0; |
martydd3 | 0:e516fcccccda | 239 | size_t temp_mid=1; |
martydd3 | 0:e516fcccccda | 240 | //printf("Value:%f\n\r",value); |
martydd3 | 0:e516fcccccda | 241 | while(temp_mid!=middlePos) |
martydd3 | 0:e516fcccccda | 242 | { |
martydd3 | 0:e516fcccccda | 243 | temp_mid=middlePos; |
martydd3 | 0:e516fcccccda | 244 | middlePos = firstPos + (lastPos-firstPos)/2; |
martydd3 | 0:e516fcccccda | 245 | if(table[middlePos].x == value) |
martydd3 | 0:e516fcccccda | 246 | { |
martydd3 | 0:e516fcccccda | 247 | lastPos = middlePos; |
martydd3 | 0:e516fcccccda | 248 | result = middlePos; |
martydd3 | 0:e516fcccccda | 249 | } |
martydd3 | 0:e516fcccccda | 250 | |
martydd3 | 0:e516fcccccda | 251 | if(table[middlePos].x < value) |
martydd3 | 0:e516fcccccda | 252 | { |
martydd3 | 0:e516fcccccda | 253 | lastPos = middlePos; |
martydd3 | 0:e516fcccccda | 254 | result = middlePos; |
martydd3 | 0:e516fcccccda | 255 | } |
martydd3 | 0:e516fcccccda | 256 | |
martydd3 | 0:e516fcccccda | 257 | else if(table[middlePos].x > value) |
martydd3 | 0:e516fcccccda | 258 | { |
martydd3 | 0:e516fcccccda | 259 | firstPos = middlePos; |
martydd3 | 0:e516fcccccda | 260 | } |
martydd3 | 0:e516fcccccda | 261 | } |
martydd3 | 0:e516fcccccda | 262 | //printf("Result:%d\n\r",result); |
martydd3 | 0:e516fcccccda | 263 | if(result == 0) |
martydd3 | 0:e516fcccccda | 264 | return table[result].y; |
martydd3 | 0:e516fcccccda | 265 | else if(result == SIZE) |
martydd3 | 0:e516fcccccda | 266 | return table[result - 1].y; |
martydd3 | 0:e516fcccccda | 267 | |
martydd3 | 0:e516fcccccda | 268 | slope = (table[result].y - table[result-1].y)/(table[result].x - table[result-1].x); |
martydd3 | 0:e516fcccccda | 269 | return (slope*(value - table[result].x) + table[result].y); |
martydd3 | 0:e516fcccccda | 270 | } |
martydd3 | 0:e516fcccccda | 271 | #endif /*_TEMPERATURE_READ_*/ |