C++ Komisches Verhalten beim logischem Oder

Hallo
Ich mache eine Uhr mit FastLed und

  if ((MinutenMerker != Minute) | (Sekunde == Minute)) 
  {
   leds[Minute] = Farbe[ 7];
  FastLED.show();
  leds[FullSekunden + Minute - 1] = CRGB::Black;
  Serial.printf(" ************** Minute got triggered ***************************Minute = %d -- Sekunde = %d **************************** ", Minute, Sekunde);
  MinutenMerker = Minute;
  }

wird es auch richtig getriggert wenn Sekunde = = Minute nur bei

************** Minute got triggered ***************************Minute = 58 -- Sekunde = 0 ****************************

wird auch der Code ausgeführt, wo ist mein Denkfehler.

Das ist das arithmetische Oder!
Das logische: ||

Ansonsten:
Was soll es tun?
Ist für mich untestbar.

Das willst du sicher lesbarer machen ?
Wenn ich mir die Sternchen wegdenke:
Das -- verstehe ich nicht und mein C++ Compiler auch nicht.

ist es eine Kreisuhr mit 60 RGB LED, oder ?

Die Minute hat sich gerade geändert, ist also ungleich MinutenMerker.

Warum benutzt du MinutenMerker nicht zum Löschen des alten Pixels?

Danke für die Antworten
Ich habe den Code noch mal umgeschrieben nun sollte es funktionieren.

Könntest du mir diese Frage beantworten?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.