2017-04-14 40 views
-4

没有更多的选择余地以外寻求帮助这里。我的问题是什么?首先,我是一名新秀,实际上是一名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 ...

任何帮助会被感激地接受。

+1

你需要更清楚地解释你的问题。你是否正在编译问题,或者你有逻辑错误? –

+0

@Henri不是那个变量:“int min_Temp1 = 500;”?感谢您的快速响应 –

+0

对不起,学习正确使用它... –

回答

0

你不说其中的值实际上是从哪里来的,但我会冒险猜测。

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

+0

THNX很多,所以在接收数据之前的延迟可能是一个解决方案?并删除特殊值(“---”)部分? –

0

Ihanx到约努茨:我添加了一行min_Temp1 = 543;在min/max例程之前,解决了这个问题;又一个键盘背后的快乐男人。