2017-04-14 69 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例程之前,解決了這個問題;又一個鍵盤背後的快樂男人。