2 つの ASCII 文字配列を LCD 画面に完全に書き込んでいます。ただし、これら 2 つの値を比較するには、if 条件が必要です。
もともと私は単純に次のように比較しようとしました。
if(currentTemp < triggTemp)
{
alarmTriggered = true;
}
これが機能しなかったため、atof() を使用して ASCII 文字列から float に変換しようとしています。
ただし、これも機能したくないようです。ここで何かばかげたことを見逃していますか? 以下の必要なコード:
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
私のライブラリのプロトタイプはそのように設定されています。