das verstehe ich nicht. Was für ein Operator ist das "^="?
Ist das die Auswertung auf eine ansteigende Flanke?
So etwas hatte ich gesucht, aber nicht gefunden.
Ich habe es nun so gelöst:
Code:
void loop(){
tasterstatus3=digitalRead(taster3); //Der Taster fürs Einstellmenü
if ((tasterstatus3==LOW)&&(Einstellmenu==2))Einstellmenu=0;
if ((tasterstatus3==HIGH)&&(Einstellmenu==0))Einstellmenu=3;
while ((Einstellmenu==3)||(Einstellmenu==1))einstell();
}
void einstell(){ //Das Menü zu Einstellen des Timer
tasterstatus3=digitalRead(taster3); //damit man wieder rauskommt
if ((tasterstatus3==LOW)&&(Einstellmenu==3))Einstellmenu=1;
if ((tasterstatus3==HIGH)&&(Einstellmenu==1))Einstellmenu=2;
}
Wie gesagt, die Funktion läuft solo, wenn gesetzt(while..). Daher muss der Ausstieg in der Funktion selbst erfolgen.
Nun ist sicher, dass der Taster erst wieder losgelassen werden muss, bevor man mit dem nächsten Druck aus der Funktion zurück in die Loop kommt.
Umständlich, aber geht.
Der Tipp mit einer zusätzlichen Variablen war genau richtig! Danke!!!
Das nächste Problem dann in einem neuen Thread, verstanden!
Lesezeichen