* led status: on, off, non-responsive * button status: idle, pressing, pressed

I'm with you by the way, but you can often think of a way to use enums instead (not saying you should).

  enum Bool 
  { 
      True, 
      False, 
      FileNotFound 
  };
https://thedailywtf.com/articles/What_Is_Truth_0x3f_

edit: The 24th of October will be the 20th anniversary of that post.

well yes. every boolean is iso to 2, and every 2 can be embedded in 3. and every N can be embedded in N+1