diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c index ef37ffcee..23accb66a 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c @@ -432,7 +432,8 @@ int32_t RTD(uint32_t Resistance_mult_by_100) //Resistance * 100 uint32_t CalculateTemperatures(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint32_t Data) { - int32_t Current_Measurement_C = 0, temp = 0; + int32_t Current_Measurement_C = 0; + float temp = 0.0; uint32_t Resistance_mult_by_100; @@ -456,21 +457,25 @@ uint32_t CalculateTemperatures(TEMPERATURE_SENSOR_ID_ENUM SensorId, uint32_t Dat uint32_t NoOfAvrSamples = 5;//TODO - how many Samples Status = Filter_Temparature_Measurement(SensorId, Current_Measurement_C, NoOfAvrSamples); #else - if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_6_0X84_1) || ( SensorId == HEAD_PT100_ZONE_8_0X86_1)))//pressure sensors + if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_6_0X84_1) || ( SensorId == HEAD_PT100_ZONE_8_0X86_1) || ( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors //if((Head_Type == HEAD_TYPE_STAPLE_SPUN) && (( SensorId == HEAD_PT100_ZONE_5_0X84_0) || ( SensorId == HEAD_PT100_ZONE_7_0X86_0)))//pressure sensors { //Head Staple spun pressure sensors //bits to mvolts - temp = TempSensorResponse[SensorId].PT100_ADC_Reading_Bits* 3.3 *1000; - temp /= 8388608;//mV - TempSensorResponse[SensorId].Temperature_C_mult_by_100 = temp;///mV - Current_Measurement_C = temp;///mV - } - else - { - TempSensorResponse[SensorId].Temperature_C_mult_by_100 = Current_Measurement_C; + float temp1 = 3.3;//3.3V ref + float temp2 = 8388608.0;//2^23 (24bit) + float temp3 = 100.0;// V_mult_by_100 + + temp = Data & 0x00FFFFFF;//24bit + temp *= temp1; + temp /= temp2; + temp *= temp3; + + Current_Measurement_C = (int32_t)(temp);///V_mult_by_100 } + TempSensorResponse[SensorId].Temperature_C_mult_by_100 = Current_Measurement_C; + #endif return Current_Measurement_C; } |
