[0]: https://hackaday.com/2010/11/09/debounce-code-one-post-to-ru...
[0]: https://hackaday.com/2010/11/09/debounce-code-one-post-to-ru...
A lowpass filter is an empirical hack, not a gold standard. It has multiple disadvantages; rather than being "responsive," it adds latency to the initial input for no good reason, and it affects both rising and falling edges equally, again for no good reason. It also requires the addition of unnecessary physical components.
For instance, taking a look with a scope, if you observe that the signal stops bouncing after 3 milliseconds, it would be pretty safe to accept duplicate keypresses with a 10-ms guard interval.
$2 micros are many MHz. All it has to do is save/compare one timestamp per interrupt.
So lets do some back-of-the-napkin calculations and say it takes 1us to store/compare the timestamp, a switch transitions 50 times per press on each change of state, and a person is typing at 100wpm (lets say 600cpm = 10cps).
I think these are pretty conservative numbers, 50 bounces sounds like a pretty crappy switch to me.
So 1000 transitions per second which would take 1ms, which means 1/1000th of the time is spent servicing the interrupts.
It's not going to cause a problem unless the coding is very inefficient.
Although in many cases polling is fine as well.