You are asking three different unrelated questions in one. Hence I cannot give you an answer.
1) You asked if I use blocking or non-blocking code.
2) You are asking if key scanning or interrupt driven event handling is better.
3) You asked how to detect a steady button state.
All three questions are separate questions.
1) You asked if I use blocking or non-blocking code.
2) You are asking if key scanning or interrupt driven event handling is better.
3) You asked how to detect a steady button state.
All three questions are separate questions.