Interruptproblem Atmega1284P Arduino / Platformio

#7070450
Lesenswert?

Hallo Gemeinde,

als Anfänger habe ich ein leichtes Interrupt Problem. Auch nach lange 
Googlesuche bin ich auf keine Lösung gekommen.

Beschreibung:

Drehe ich am Encoder, steigen, bzw. fallen die Werte im Display. Drücke 
ich aber die Taste, geht nichts mehr. Erst nach einem Reset kann man die 
Werte durch drehen wieder ändern.

Für Ratschläge und Hilfe wäre ich sehr dankbar.

Grüße

Martin
Angehängte Dateien:
Gast #7070472
Lesenswert?

Martin D. schrieb:
> Für Ratschläge und Hilfe wäre ich sehr dankbar.

In deiner Interrupt-Routine  <void setzen()> druckst du
auf das LCD. Das könnte zuviel Zeit verbraten. Versuche
das zu vermeiden indem du dort nur ein globales Flag setzt
und die Ausgabe deines Ereignisses in der Hauptschleife
machst (Flag, volatile, zurücksetzen nicht vergessen).
#7070491
Lesenswert?

Ruft man da nicht in der Timer_isr encoder->service() auf und holt sich 
in der main mit encoder->getButton() den Zustand des kNopfes? (gedrückt, 
losgelassen, doppelklick usw.)?
Also im mitgelieferten Beispiel machen die das so.
https://github.com/grappendorf/arduino-framework/blob/master/ClickEncoder/examples/ClickEncoderTest/ClickEncoderTest.ino

edit: kopf = Knopf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren