itoa和uitoa用法

时间:2012-06-21 11:29:06

标签: c++ c pic

我正在使用PIC-Web的热敏电阻读取房间内的温度以进行项目。我必须对代码进行评论,以表明我对它不屑一顾。我理解代码的第一部分(我认为),但第二部分并非如此。这是代码:

void HTTPPrint_temp(void)
{
// We define TempString as a string of bytes
BYTE TempString[8];

// We define SP_String as a string of bytes
BYTE SP_String[8];

// We define temperature and tmp as integers
int temperature, tmp;

// We define r and z as floating point number
float r, z;

#if defined(__18CXX)
// We utilize channel 9 for the A/D conversion
ADCON0bits.CHS0 = 1;
ADCON0bits.CHS1 = 0;
ADCON0bits.CHS2 = 0;
ADCON0bits.CHS3 = 1;

// We wait for the A/D conversion to end
ADCON0bits.GO = 1;
while(ADCON0bits.GO);

// We convert the 10-bit value into an ASCII string
tmp = (WORD)ADRES;

// We read and calculate the value of the temperature 
r = ((1024.0*10000.0)/(float)tmp)-10000.0;

// We calculate the value in degrees Celsius
temperature = 4100.0/log(r/0.0111182) - 273.15;

// We alocate the value of the temperature to TempString 
itoa(temperature, TempString);

#else

// Don't know?
ADval = (WORD)ADC1BUF0;

// Don't know
uitoa(ADval, (BYTE*)AN0String);

#endif

// We open up a socket and send the data to the website
TCPPutString(sktHTTP, TempString);

}

有人可以解释我们使用的原因:

itoa 
else 
ADval=(WORD)ADC1BUF0
uitoa

1 个答案:

答案 0 :(得分:2)

这是使用条件编译指令为两种不同的体系结构定义的。

您需要了解的更多部分是:

#if defined(__18CXX)
  // code for PIC18
#else
  // code for other 
#endif

我不熟悉PIC系列,但您应该检查PIC18控制器是否与其他PIC具有不同的ADC设置。

__18CXX符号可能由编译器自动定义。您可能能够找到所需目标设备的设置,这将导致在编译期间使用正确的代码。