ständige Überwachung eines Eingangssignals

Hallöchen,

ich wüsste gerne, ob es möglich ist, ein Eingangssignal dauerhaft abzufragen?

Problem :

In einem Sketch führt ein Taster dazu, dass eine Variable ihren Wert auf 1 ändert und dadurch solange die Variable den Wert 1 hat, eine Schleife ausgeführt wird. Eine weitere Betätigung des Tasters würde den Zustand der Variable wieder auf 0 setzen.
Da Arduino die Code-Zeilen, aber immer von oben nach unten abarbeitet, wird eine Tasterbetätigung während der Schleife nicht wahrgenommen, da der Zustand des Eingangs in dem Moment nicht abgefragt wird.
Ich würde die Ausführung jedoch gerne auch währenddessen, sprich zu jedem Zeitpunkt abbrechen.

Ist das möglich? Wenn ja, wie?

Vielen Dank schonmal für Antworten! :slight_smile:

Liebe Grüße

Wie soll man den Code sonst lesen? Mitte, Anfang, dann vielleicht noch mal Mitte? :smiley:

Sketch?
Das Problem ist dein Programmierstil. Ein loop Durchgang sollte möglichst schnell von statten gehen. Dann kannst du auch deinen Taster immer abfragen.

hi,

es kommt darauf an, wie lange ein loop-durchgang bei Dir dauert. im allgemeinen ist das minimal im vergleich zu dauer des tastendrucks.
wenn Du natürlich delays einbaust, zb. weil der loop nur jede sekunde ausgeführt werden soll, machst Du es falsch. dann sieh Dir das blinkwithoutdelay-beispiel an.
sollte die dauer des loops aus anderen gründen (zum beispiel warten auf antwort eines senders) zu lange dauern, kannst Du einen interrupt benutzen, der eine variable setzt, die Du dann nach dem warten abfragen kannst. an dieser erkennst Du, ob inzwischen jemand gedrückt hat.

gruß stefan

"Warten auf die Antwort eines Senders" geht aber genauso mit blinkWithOutDelay. Solche Probleme treten häufig beim DS18B(S)20 auf, da dieser bis zu 750ms braucht.

Hallo,
dann breche doch mit "break" aus der Schleife aus.
http://arduino.cc/en/Reference/Break
Eine TastenAbfrage in die Schleife, eine in die loop. Dann kommst Du immer ran.
Wenn Du auf etwas wartest, z.B. warte bis A=1 ist, dann mache es umgekehrt.
Ist A=1, nein, weiter.
Wenn Du möchtest, kannst Du den Sketch ja mal einstellen. Hier laufen einige
recht fähige Jungs rum.
Gruß und Spaß
Andreas