This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
in202:seance_6:jalon_5 [2021/05/02 13:07] bmonsuez created |
in202:seance_6:jalon_5 [2022/11/18 10:47] (current) |
||
---|---|---|---|
Line 11: | Line 11: | ||
Pour ce faire, vous pouvez modifier le ''EventHandler'' en vous assurant que ce temps minimal c'est bien déroulé entre deux événnements de type ''Pressed'', ''Released'' et ''Changed''. Pour déterminer le temps qui s'est écoulé, il suffit de stocker dans un champ, par exemple ''int m_lastPressedTime'' le temps auquel s'est déroulé le dernier événement pris en compte. La fonction [[https://www.arduino.cc/reference/en/language/functions/time/millis/|''millis()'']] retourne le nombre de millisecondes qui se sont écoulés depuis le démarrage de la carte. | Pour ce faire, vous pouvez modifier le ''EventHandler'' en vous assurant que ce temps minimal c'est bien déroulé entre deux événnements de type ''Pressed'', ''Released'' et ''Changed''. Pour déterminer le temps qui s'est écoulé, il suffit de stocker dans un champ, par exemple ''int m_lastPressedTime'' le temps auquel s'est déroulé le dernier événement pris en compte. La fonction [[https://www.arduino.cc/reference/en/language/functions/time/millis/|''millis()'']] retourne le nombre de millisecondes qui se sont écoulés depuis le démarrage de la carte. | ||
- | Modifier la classe ''EventHandler'' de ''Button'' pour prendre en compte ce mécanisme de contrôle de rebond. | + | Modifier la classe ''ButtonEvents'' pour prendre en compte ce mécanisme de contrôle de rebond. |
+ | |||
+ | ** Indication ** : dans ''template<int First, int... _Rest> class ButtonEvents<First, _Rest>'', en complément de ''static Button* mButton'', il faut ajouter les champs ''static int mLastPressedTime'', ''static int mLastReleasedTime'', ''static int mLastChangedTime''. Ensuite, il faut modifier les fonction ''Pressed'', ''Released'' et ''Changed'' pour n'appeller que quand le temps écoulé depuis le dernier événements pris en compte est supérieur à un certain délai, 200 ms semble être un bon critère entre //deux appuis// sur le bouton. | ||