“奇怪的”行为变量......

时间:2017-04-14 03:12:42

标签: c++ arduino

除了在这里寻求帮助外,没有其他选择可以打开。我的问题是什么?首先我是一个新手,实际上是一个关于C ++的新手。

在Arduino项目中,我有以下部分:

//...

    struct package
    {
      float temperature ;
      float humidity ;
    };
//...
    float remoteTemperature = 0,0;
    float previousRemoteTemperature = 0.1;
    int Temp1 = 0;
    int min_Temp1 = 500;
    int max_Temp1 = -500;
    void printRemoteTemperature()
    {
      String temperature;
      if(remoteTemperature != previousRemoteTemperature)
      {
        if(remoteHumidity == 0.0 && remoteTemperature == 0.0) //We just booted up
        {
          temperature = "---";
        }else
        {
          temperature = String (remoteTemperature,1);
        }
        tft.print(temperature);
        previousRemoteTemperature = remoteTemperature;
        Temp1 = (remoteTemperature);   
        if (Temp1 >= max_Temp1) { max_Temp1 = Temp1; }
        if (Temp1 <= min_Temp1) { min_Temp1 = Temp1; }

        tft.print(min_Temp1);

        tft.print(max_Temp1);
        }
    }

一切(在这种情况下是最高温度)工作正常,除了最低温度,总是0 ...

任何帮助都将被感激地接受。

2 个答案:

答案 0 :(得分:0)

你没有说出这些价值实际来自哪里,但我会猜测。

if评论的// We just booted up语句让我相信温度变为零时有一点。在这种情况下,您将显示设置为特殊值("---"),但仍然执行该功能的其余部分。所以你的min_Temp在开头就变为0了。 如果没有温度值小于零,那么这将保持最小值。

答案 1 :(得分:0)

Ihanx to Ionut:我添加了一行min_Temp1 = 543;在min / max例程之前,解决了案例;键盘后面一个快乐的人。