gridrix Posted March 16, 2012 at 03:10 PM Posted March 16, 2012 at 03:10 PM 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. Quote
batti Posted March 16, 2012 at 03:20 PM Posted March 16, 2012 at 03:20 PM Könnte mir vorstellen das deine Schalter prellen (kannste mal nach googeln). Wenn dies ist musst du deine "Debouce period" erhöhen. Siehe API Dokumentation unter set_debounce_period. Quote
gridrix Posted March 16, 2012 at 04:47 PM Author Posted March 16, 2012 at 04:47 PM 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? Quote
borg Posted March 16, 2012 at 08:22 PM Posted March 16, 2012 at 08:22 PM 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 Quote
gridrix Posted March 17, 2012 at 09:42 AM Author Posted March 17, 2012 at 09:42 AM Gerade getestet, funktioniert hervorragend! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.