Jump to content

Recommended Posts

Geschrieben

Hallo,

 

Ich habe am IO16 bricklet ein paar Taster angeschlossen. Nur leider bekomme ich interrupts manchmal doppelt (mit dem c-code Beispiel), das heisst wenn sich der Zustand ändert (Taster schliessen/öffnen) dann wird manchmal für den alten Zustand noch einmal ein interrupt ausgelöst und sofort danach einer für den neuen Zustand und manchmal wird ein Interrupt sofort doppelt ausgelöst.

Die Wiederholer lassen sich im Callback leicht rausfiltern, da value_mask sich bei doppelten interrupts nicht verändert, aber ich denke das ist nicht das Verhalten das eigentlich gewünscht ist.

Geschrieben

Ich hab nicht so richtig Ahnung von elektrotechnik, aber sollte dann nicht auch noch ein Interrupt mit dem jeweils anderen Zustand kommen?

Also ich bekomm gerade z.B. folgende 3 Interrupts für den Schalter beim drücken: low, high, high. Wenn der Schalter prellt würde ich doch low, high, low, high erwarten?

Geschrieben

Hab mir mal gerade den IO16 Code kurz angeguckt. Das kann Zustande kommen wenn uns der IO Expander ein Interrupt erzeugt während wir in der debounce Phase sind (low -> high), dann das Interrupt wieder wegnimmt (high -> low) und dann ein neues Interrupt kommt (low -> high) bevor die debounce Phase zuende ist.

 

Ich hab mal eingebaut das der letzte Interrupt gespeichert wird um zu gucken das wir den gleichen nicht nochmal verarbeiten: https://github.com/Tinkerforge/io16-bricklet/commit/147ad1f617c766313edaf5461f9eee5efe498b25

 

Ob das dein Problem zu 100% löst kann ich nicht sagen, schaden tut es aber nicht.

 

Hier gibts die neue Version: http://download.tinkerforge.com/firmwares/bricklets/io16/bricklet_io16_firmware_1_1_1.bin

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...