You are misreading my code. The line:What are you talking about? Your 'keychg' variable isn't persistent. You overwrite it each time through the routine.
Code:
retbc TC8ms ;process kbd row every 8 ms (total 32 ms debounce time)
Code:
btfss TC8ms
return
Of course you are correct. Trying not to confuse the issue.Actually, four samples at the same state at 8-msec intervals is a span of 24-msecs so your code requires a minimum steady state 'press' or 'release' of between 24 and 32 msecs.
Why are you taking this personally? So far, you've called my code 'clumsy', and my analysis 'nonsense'. Correct me where I am wrong, but ad hominems don't seem appropriate.Nonsense!
In my experience, it does make a huge difference, for reasons I have already explained. We can leave this as a difference of opinions.My routines work just as well, even when using a pair of bare wires. In this case, if the extra code and registers don't improve performance or add features they're simply unnecessary extra code and registers (grin).