UINT16 temp_GetCelsius ( UINT16  adc_val )

This function returns given ADC value as temperature in °C.

Parameters:
adc_valADC value
Returns:
Temperature value in °C
Return values:
UINT16

Definition at line 230 of file temp.c.

Referenced by main(), and temp_Check().

{
  INT16   u16Ret = 85U;
  UINT16  u16NTC;
  
  if (0U != adc_val)
  {
    u16NTC = (UINT16) (((1024UL * 1100UL) / ((UINT32)adc_val)) - 1100UL);
    
    if (u16NTC >= 12500U)
    {
      u16Ret = 0U;
    }
    else if (u16NTC >= 9000U)
    {
      u16Ret = 5U;
    }
    else if (u16NTC >= 7500U)
    {
      u16Ret = 10U;
    }
    else if (u16NTC >= 6000U)
    {
      u16Ret = 15U;
    }
    else if (u16NTC >= 4700U)
    {
      u16Ret = 20U;
    }
    else if (u16NTC >= 3800U)
    {
      u16Ret = 25U;
    }
    else if (u16NTC >= 3300U)
    {
      u16Ret = 30U;
    }
    else if (u16NTC >= 2500U)
    {
      u16Ret = 35U;
    }
    else if (u16NTC >= 2000U)
    {
      u16Ret = 40U;
    }
    else if (u16NTC >= 1700U)
    {
      u16Ret = 45U;
    }
    else if (u16NTC >= 1200U)
    {
      u16Ret = 50U;
    }
    else if (u16NTC >= 1000U)
    {
      u16Ret = 55U;
    }
    else if (u16NTC >= 800U)
    {
      u16Ret = 60U;
    }
    else if (u16NTC >= 900U)
    {
      u16Ret = 65U;
    }
    else if (u16NTC >= 800U)
    {
      u16Ret = 70U;
    }
    else if (u16NTC >= 600U)
    {
      u16Ret = 75U;
    }
    else if (u16NTC >= 500U)
    {
      u16Ret = 80U;
    }
    else
    {
      u16Ret = 85U;
    }
  }
  
  return (u16Ret);
}

Here is the caller graph for this function: