Naturale che si blocchi: dentro all'interrupt ci hai messo un richiamo ad una funzione che ne richiama un'altra con dentro la creazione di oggetti String e stampe su seriale.
Nelle routine dell'interrupt devi mettere solo l'incremento o il decremento dell'indice.
Sarà nel loop che ciclicamente controlli il menu da visualizzare e le varie operazioni per visualizzarlo.