/***************************************************************************** * Function Name: ProcessTemperature() ****************************************************************************** * Summary: * Measures the current temperature. * * Parameters: * None * * Return: * uint32 - Measured temperature * * Theory: * This function measures the reference voltage, thermistor voltage and * offset voltage. * Channel 0 - Reference voltage * Channel 1 - Thermistor voltage * Channel 2 - Offset voltage * * This function removes offset via correlated double sampling and then * measures the temperature. * * Side Effects: * None * * Note: * *****************************************************************************/ int32 ProcessTemperature (void) { /* Local variables used for temperature measurement */ static int32 temperature = 0; #if (SIMULATE_TEMPERATURE_SENSOR) int32 thermistorResistance = 0; int16 referenceVoltage = 0; int16 thermistorVoltage = 0; int16 offsetVoltage = 0; /* Check if measurement interval has expired */ if(SystemFlag & MEASUREMENT_INTERVAL) { /* Disconnect all the pins from Amux input */ AMuxSeq_DisconnectAll(); /* Measure reference voltage - Channel 0 */ referenceVoltage = MeasureSensorVoltage(); /* Measure thermistor voltage - Channel 0 */ thermistorVoltage = MeasureSensorVoltage(); /* Measure offset voltage - Channel 0 */ offsetVoltage = MeasureSensorVoltage(); /* Measure thermistor resistance and remove offset by using correlated * double sampling. */ thermistorResistance = Thermistor_GetResistance((referenceVoltage - offsetVoltage), (thermistorVoltage - offsetVoltage)); /* Compute temperature and remove decimal places */ temperature = Thermistor_GetTemperature(thermistorResistance); temperature = temperature / 100; } #else /* Check if measurement interval has expired */ if (SystemFlag & MEASUREMENT_INTERVAL) { temperature++; if(temperature > 100) { temperature = 0; } } #endif /* Return measured temperature */ return (temperature); }
/******************************************************************************* * Function Name: AMuxSeq_Stop ******************************************************************************** * Summary: * Disconnect all channels. The next time Next is called, channel 0 will be * connected. * * Parameters: * void * * Return: * void * *******************************************************************************/ void AMuxSeq_Stop(void) { AMuxSeq_DisconnectAll(); }
/******************************************************************************* * Function Name: AMuxSeq_Init ******************************************************************************** * Summary: * Disconnect all channels. The next time Next is called, channel 0 will be * connected. * * Parameters: * void * * Return: * void * *******************************************************************************/ void AMuxSeq_Init(void) { AMuxSeq_DisconnectAll(); }
/******************************************************************************* * Function Name: AMuxSeq_Start ******************************************************************************** * Summary: * Disconnect all channels. The next time Next is called, channel 0 will be * connected. * * Parameters: * void * * Return: * void * *******************************************************************************/ void AMuxSeq_Start(void) { AMuxSeq_DisconnectAll(); AMuxSeq_initVar = 1u; }