Gestione tastiera e menu

La procedura si può trovare in tre stati diversi, da ognuno di questi passa al successivo a causa di uno stimolo esterno:
Alla pressione di un tasto riceve un interrupt e dallo stato IDLE imposta il timer per il debounce e passa allo stato di attesa.
Quando, dopo 20ms, il timer scade, viene avviata la lettura dell'I/O expander I2C a cui è collegata la tastiera.
Finita la lettura dei registri, le procedure I2C comunicano l'evento, il registro viene letto per capire quale tasto è stato premuto.

Ogni tasto ha un significato diverso secondo il contesto:
durante il funzionamento standard i tasti
rosso e verde mostrano il menu successivo e quello precedente.
Solo se il menu selezionato ammette modifiche, il tasto blu fa passare dallo stato di visualizzazione a quello di modifica e viceversa.
Nello stato modifica il tasto bianco seleziona ciclicamente il valore da modificare con i tasti rosso e verde.

Eseguita l'azione voluta, la procedura torna nello stato IDLE.

Sorgente Keypad e Menu

aggiornato il 08 - 12 - 2005