我正在将两个 ASCII 字符数组完美地写入 LCD 屏幕。但是我需要一个 if 条件来比较这两个值。
最初我试图像这样简单地比较它们:
if(currentTemp < triggTemp)
{
alarmTriggered = true;
}
由于这不起作用,我正在尝试使用 atof() 将它们从它们的 ASCII 字符串转换为浮点数。
然而,这似乎也不想工作,我在这里错过了什么愚蠢的东西吗?必要的代码如下:
void main () {
char triggTemp;
int buttonBool = 0;
bool alarmTriggered = false;
char currentTemp;
double f_triggTemp = 0;
double f_currentTemp = 0;
TRISC = 0x00;
init();
Init_lcd();
while(1)
{
//char bufferString[4];
currentTemp = get_temp();
f_currentTemp = atof(currentTemp);
f_triggTemp = atof(triggTemp);
if(f_currentTemp < f_triggTemp)
{
alarmTriggered = true;
}
if(alarmTriggered == true)
{
soundBuzzer();
}
}
这些值以这种形式从函数返回:
//some function
char bufferString[4];
sprintf(numberString, "%s.%s", itoa(bufferString,setTemp,10),
itoa(bufferStringDec,setTempDec,10));
return numberString;
本质上,我正在尝试比较这些 ASCII 字符的 char 数组,以便我可以使用 if 条件来触发警报。
我试图保持代码片段简短,我可以根据要求澄清。谢谢你的帮助。
编辑:我知道我正在使用atof
变量double
;我库中的原型就是这样设置的。