steronydh:
Thanks Jack! Using your library, I am still not reliably detecting button presses. As the internal clock speed goes down, it drops from picking up every press of a rapidly-pressed button to only detecting one per second or so. It doesn't seem to matter if I rescale the debounce time or not. Does it matter that millis() returns a value scaled according to the internal clock speed?
millis() should return milliseconds, regardless of clock speed. If it's doing something else (why?) then yes that could be an issue, but only detecting one per second seems way out in left field.