Denkfehler (?) mit millis

Hallo...

Hab ein kleines Sketch geschrieben bei dem 2 DS18B20 Sensoren abgefragt und die gelesene werte auf einem kleinen OLED Display dargestellt werden...

Die Anzeige wechselt alle x Sekunden (per Millis) von einem auf den Anderen Sensor & zeigt die Entsprechenden Werte an...

Das Funktioniert soweit tadellos...

Allerdings werden während der Anzeigedauer die Sensorwerte nicht aktualisiert...

Ich steh da gerade auf dem Schlauch..
Sieht jemand von euch den Fehler?

void loop() 
{
  sensors.requestTemperatures();
  if((millis() - prevous_millis > SWITCH_INTERVALL))
   {
    temperatur(next_step);
    prevous_millis=millis();
    if(next_step < 3)
     {
       next_step++;  // Hochzählen des Zählers
     }
    else
     {
      next_step = 1; // Rücksetzen des Zählers auf 1
     }
   }
}

void temperatur(int value)
 {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
    if(value == 1)
      {
        display.println("Innentemperatur");
      }
    else if(value == 2)
      {
        display.print("Au");
        display.print(char(224));
        display.println("entemperatur");
      }
    else
      {
        display.println("Differenztemperatur");
      }
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 18);
    if(value == 1)
      {
        if(sensors.isConnected(Sensor_1))
          {
            display.print(sensors.getTempC(Sensor_1)+Sensor1_Offset);
            //Serial.println(sensors.getTempC(Sensor_1));
          }
        else
          {
            display.print("Error");
          }
        
      }
    else if (value == 2)
      {
        if(sensors.isConnected(Sensor_2))
          {
            display.print(sensors.getTempC(Sensor_2)+Sensor2_Offset);
            //Serial.println(sensors.getTempC(Sensor_2));
          }
        else
          {
            display.print("Error");
          }
      }
    else
      {
        if((sensors.isConnected(Sensor_1)) && (sensors.isConnected(Sensor_2)))
          {
            display.print((sensors.getTempC(Sensor_2)+Sensor2_Offset) - (sensors.getTempC(Sensor_1)+Sensor1_Offset));
          }
        else
          {
            display.print("Error");
          }
      }
      
  display.setCursor(90, 18);
  display.print(char(247));
  display.println("C");
  display.display();
 }

:grin:

Wie das immer so ist.... Kaum gepostet kam der Geistesblitz zur Lösung... Und wie meistens: nur ne Kleinigkeit...

void loop() 
{
  sensors.requestTemperatures();
  temperatur(next_step);
  if((millis() - prevous_millis > SWITCH_INTERVALL))
   {
    prevous_millis=millis();
    if(next_step < 3)
     {
       next_step++;  // Hochzählen des Zählers
     }
    else
     {
      next_step = 1; // Rücksetzen des Zählers auf 1
     }
   }
}

Skipper_Do:
Wie das immer so ist.... Kaum gepostet kam der Geistesblitz zur Lösung... Und wie meistens: nur ne Kleinigkeit...

Wem sagst Du das ... schon einen Fehler allgemeinverständlich zu beschreiben führt häufig zur Lösung.

Gruß

Gregor

Siehst Du, wir haben Dir geholfen.
Grüße Uwe

uwefed:
Siehst Du, wir haben Dir geholfen.

Ja, manchmal können Leute, denen man einfach alles erklären muss, wirklich hilfreich sein eg

Gruß

Gregor

Ja, manchmal können Leute, denen man einfach alles erklären muss, wirklich hilfreich sein eg

Manchmal sind Leute, denen man alles einfach erklärt, wirklich hilfreich

SCNR

gregorss:
Wem sagst Du das ... schon einen Fehler allgemeinverständlich zu beschreiben führt häufig zur Lösung.

Gruß

Gregor

Der "Fachausdruck" dafür nennt sich "Rubber Duck Debugging" :slight_smile:

Gruß

In der Schule wurde uns das als "Der Oma erklähren" verkauft.
Grüße Uwe

Eine Gummiente ist in der Regel geduldiger, und sonst zu nicht viel anderem zu gebrauchen.
Im Gegensatz zur Oma.

:grin:

michael_x:
Im Gegensatz zur Oma.

Au ja! Wir essen Oma und Opa!

michael_x:
Eine Gummiente ist in der Regel geduldiger, und sonst zu nicht viel anderem zu gebrauchen.
Im Gegensatz zur Oma.

:grin:

Stimmt schon aber an der Gummiente kann man zur Not auch mal seinen Frust auslassen, wenn es trotz aller Mühe nicht funktioniert :smiling_imp: :stuck_out_tongue_closed_eyes: