I'm going to change the default debouncing delay kDebounceDelay from 50 ms to 20 ms.
I have noticed that at 50 milliseconds, a button can feel sluggish if I push it up and down fast enough. With the current delay of 50 ms, a Pressed event is delayed by 50 ms, then a Released event is delayed by 50 ms, for a total delay of at least 100 ms, and it is actually possible to push a button up and down fast enough for the library to miss real button events. At 20 ms, a button feels far more responsive.
This extensive article (http://www.ganssle.com/debouncing-pt2.htm) says that most switches will settle down within 10 ms, and recommends a debounce time of 20-50 ms. I'm going with the lower end of that.
This change means that the AceButton::check() must be called a little more frequently than before. So instead of calling it every 10-20 ms, it should be called every 5 ms or lower.
End-users are, of course, always free to override the default values of any of the timing parameters.
I'm going to change the default debouncing delay
kDebounceDelay
from 50 ms to 20 ms.I have noticed that at 50 milliseconds, a button can feel sluggish if I push it up and down fast enough. With the current delay of 50 ms, a Pressed event is delayed by 50 ms, then a Released event is delayed by 50 ms, for a total delay of at least 100 ms, and it is actually possible to push a button up and down fast enough for the library to miss real button events. At 20 ms, a button feels far more responsive.
This extensive article (http://www.ganssle.com/debouncing-pt2.htm) says that most switches will settle down within 10 ms, and recommends a debounce time of 20-50 ms. I'm going with the lower end of that.
This change means that the
AceButton::check()
must be called a little more frequently than before. So instead of calling it every 10-20 ms, it should be called every 5 ms or lower.End-users are, of course, always free to override the default values of any of the timing parameters.