liegt es daran dass du switched auf null setzt? die interruptroutine wird wohl nur einmal ausgeführt, also muss der taster erst losgelassen werden und dann wieder gedrückt werden.