Unit_Conv.c 2.66 KB
Newer Older
崔立宝's avatar
崔立宝 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#include "Unit_Conv.h"

//==============================================
//	tempc = C
//	return = F
//==============================================
unsigned int Unit_Conv_C_To_F(unsigned int TempC)
{
  unsigned long	TempF;
  unsigned long	Val;

  Val   = (unsigned long)TempC;
  TempF = 32 + (Val * 18) / 10;

  return (unsigned int)TempF;
}

//==============================================
//	kpa = kpa
//  return = 10倍的bar(带小数点后一位)
//==============================================
unsigned int Unit_Conv_kPa_To_bar(unsigned int kPa)
{
  return kPa / 10;
}

//==============================================
//	kpa = kpa
//	return = psi
//==============================================
unsigned int Unit_Conv_kPa_To_psi(unsigned int kPa)
{
  unsigned long	psi;
  unsigned long	Val;

  Val = (unsigned long)kPa;
  psi = (Val * 145) / 1000;

  return (unsigned int)psi;
}

//==============================================
//	km = km
//	return = mile
//==============================================
unsigned long Unit_Conv_km_To_mile(unsigned long km)
{
48 49
  if (km * 3940 / 634 % 10 > 5)
    return (km * 394 / 634) + 1;   //mile = km *  3937 / 6336
崔立宝's avatar
崔立宝 committed
50 51 52 53 54 55 56 57 58 59
  else
    return km * 394 / 634;
}

//==============================================
//	mile = mile
//	return = km
//==============================================
unsigned long Unit_Conv_mile_To_km(unsigned long mile)
{
60
  return mile * 634 / 394;         //mile = km * 6336 / 3937
崔立宝's avatar
崔立宝 committed
61 62 63 64 65 66 67 68 69 70 71
}

//==============================================
//	L_100km = 10倍的L/100km (带小数点后一位))
//	return  = 10倍的km/L (带小数点后一位)
//==============================================
unsigned int Unit_Conv_L_100km_To_km_L(unsigned int L_100km)
{
  unsigned long	km_L;
  unsigned long	Val;

72
  if (L_100km == 0)
崔立宝's avatar
崔立宝 committed
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
    return 0xFFFF;

  Val  = (unsigned long)L_100km;
  km_L = 10000 / Val ;

  return (unsigned int)km_L;
}

//==============================================
//	L_100km = 10倍的L/100km (带小数点后一位)
//	return = 10倍的mpg(US)(带小数点后一位)
//==============================================
unsigned int Unit_Conv_L_100km_To_mpg_US(unsigned int L_100km)
{
  unsigned long	mpg_US;
  unsigned long	Val;

90
  if (L_100km == 0)
崔立宝's avatar
崔立宝 committed
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
    return 0xFFFF;

  Val    = (unsigned long)L_100km;
  mpg_US = 23500 / Val ;

  return (unsigned int)mpg_US;
}

//==============================================
//	L_100km = 10倍的L/100km (带小数点后一位)
//	return = 10倍的mpg(UK)(带小数点后一位)
//==============================================
unsigned int Unit_Conv_L_100km_To_mpg_UK(unsigned int L_100km)
{
  unsigned long	mpg_UK;
  unsigned long	Val;

108
  if (L_100km == 0)
崔立宝's avatar
崔立宝 committed
109 110 111 112 113 114 115
    return 0xFFFF;

  Val    = (unsigned long)L_100km;
  mpg_UK = 28200 / Val ;

  return (unsigned int)mpg_UK;
}