Пример #1
0
/*****************************************************************************
* 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);
}
Пример #2
0
/*******************************************************************************
* 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();
}
Пример #3
0
/*******************************************************************************
* 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();
}
Пример #4
0
/*******************************************************************************
* 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;
}