BounceTime nur steigender Flanke ?

Ein neuer Artikel wurde veröffentlicht
  • Hallo Zusammen


    Eine Frage: Kann es sein, dass die BounceTime nur bei steigender Flanke greift?


    Ich habe das Gefähl das bei folgender Abfrage:

    Code
    1. GPIO.add_event_detect(4, GPIO.FALLING, callback=my_callback, bouncetime=300)


    Die bouncetime ignoriert wird?


    Für euere Bemühungen bedanke ich mich bereits im voraus herzlichen.


    Gruss Dani

  • Die bouncetime ignoriert wird?

    Irgendwo hab ich gegelesen, dass dies bei RPi.GPIO allgemein nicht so zuverlässig funktionieren soll. Bei einem Projekt hab ich es aktuell im Einsatz, dort hätte ich aber nicht das Gefühl das es unzuverlässig arbeitet.


    Ansonsten Tasterentprellung einfach selbst realisieren :)

  • Bitte,

    aber gerne doch:

    Imports und GPIO Konfiguration unvollständig!

    Hoffe ich konnte dir weiterhelfen

  • Hallo Hofei.


    Besten Dank für den Code. Nahc meinem Akteullen verständnis funktinoiert der oben stehende Code zum "reinen" Entprellen einwandfrei jedoch ist dafür eine Grundvoraussetzung das eine "geschützte" Leitung vorliegt und man lediglich das Entprellen abfrangen will.


    Kämpft man jedoch leider mit zusätzlichen Störsignalen, funktioniert der Code nicht,

    Gibt es dafür auch noch eine Lösung oder liege ich mit meinem aktuellen Verständnis falsch?


    Gruss Dani

  • Naja, das hat dann aber nicht s mehr mit Entprellen zu tun, wenn du Störsignale auf der Leitung hast. Auch hätte dir hierfür niemals das bouncetime weiterhelfen können. Wenn es sich um wirkliche Störsignale die von außerhalb auf die Kabel einwirken handelt, so würde ich mir am besten mal die EMV Möglichkeiten anschauen, welche dir zur Verfügung stehen. Softwareseitig stehen dir (meines Wissens nach) dafür aber keine Möglichkeiten zur Verfügung.

  • Sali Hofei.


    Natürlich hast du recht, das dies nicht Entprellen im eigentlichen sinne ist.

    Das feine an BounceTime ist jedoch, dass du sagen kannst, wie lange das Signal mindestens den entsprechenden Wert haben muss, damit der Interrupt "geworfen" wird, somit kann ein Fehler abgefangen werden - egal ob durch einen prellenden "Schalter" oder durch ein kurzes Störsignal.


    Gruss Dani

  • Das feine an BounceTime ist jedoch, dass du sagen kannst, wie lange das Signal mindestens den entsprechenden Wert haben muss, damit der Interrupt "geworfen" wird

    Ja?

    Also so wie ich das verstanden habe ist, dass BounceTime NUR dafür zuständig ist, dass innerhalb der angegebenen Zeit keine weiteren Signale aktzeptiert werden.

    Aber genau das, (dass ein Signal eine bestimmte Zeit anliegen kann) könntest du ja leicht realisieren, durch eine kleine zusätzlichen Abwandlung des oben geposteten Codes


    EDIT: Wobei das dann wiederrum schwierig werden könnte, mit dem normalen prellenden Signal zu unterscheiden.

    Also Störsignale ansich musst du anderweitig beseitigen

  • Hallo Hofei.


    Du hast recht. Ich ziehe meine oben stehende Aussage retour, war wieder einmal bei einem anderen Thema....


    Bezüglich der Abwandleung des Code blicke ich nicht durch - evtl magstdu mir da nochmals ein schups geben.

    Bezüglich der Unterschediung sehe ich kein Problem. Evtl erwische ich nicht den ersten Impuls des Tasters doch das muss ich auch nocht ,meine schaltung ist nocht hoch genau es reicht eine Genauigkeit von Sekunden. :)


    Gruss Dani