Using an internal timer and SPI at the same time

:relaxed:
Hugh?
I think I know what volatile means. ...I use that when I'm going to have an interrupt pin change a variable. I don't know static or why it's used. (I didn't write this code, I just found it at adafruit) So you're saying that the code isn't stable? I see where it has:

volatile byte pressed[NUMBUTTONS], justpressed[NUMBUTTONS], justreleased[NUMBUTTONS];

and also

  static byte previousstate[NUMBUTTONS];
  static byte currentstate[NUMBUTTONS];
  static long lasttime;

...so somethings' not right with this? Should I replace the word static with volatile??