ESP32 Reset ESP.restart()

Hey Leute
Ich will mein ESP32 DevKit per Tastendruck (Enter und Escape gleichzeitig) neustarten lassen.
Bei mir startet der ESP aber direkt neu, egal ob dieser in einer if-bedingung ist.

int escButton = 25;
int enterButton = 26;

int enterState = 0;
int enterStateold = 0;
int escState = 0;
int escStateold = 0;

//setup
  pinMode(enterButton, INPUT_PULLUP);
  pinMode(escButton, INPUT_PULLUP);

//loop:
  enterState = digitalRead(enterButton);
  escState = digitalRead(escButton);

 if (escStateold == LOW && escState == HIGH && enterStateold == LOW && enterState == HIGH) { //Reset wenn Enter und Esc gedrückt wird
    ESP.restart();
  }
  escStateold = escState;
  enterStateold = enterState;

Kann mir dabei jemand helfen?

INPUT_PULLUP erwartet Taster gegen GND und ist LOW-aktiv. Also nicht gedrückt ist HIGH.

Gruß Tommy

Also frage ich ab ob die Stateold HIGH ist und die aktuelle State LOW?

Das Problem ist ich habe im Programm auch andere Taster aber die funktionieren ganz normal bei Pullup und oldState abfrage LOW und State abfrage HIGH

Hab es gelöst in dem ich nur die States abfrage

if (escState == LOW && enterState == LOW) { //Reset wenn Enter und Esc gedrückt wird
    ESP.restart();
  }

wennst eh schon den Umweg über eine Zwischenvariable machst, warum negierst du dann nicht einfach das gelesene Ergebnis und fährst den Code "natürlich-sprachlich" LOW/HIGH?

also

  enterState = !digitalRead(enterButton);
  escState = !digitalRead(escButton);

und dein IF Monster könnte so bleiben wie vorher.

Außerdem, checke mal welche Variablen du const machen kannst und
welche Variablen-Typen du wirklich brauchst. Es gibt nicht nur int! oft reicht bool oder byte schon!