non riesco a usare le funzioni

contrariamente alla pratica comunq, sui microcontrollori meglio le variabili globali. Visto che lo stack è condiviso con la ram, si risparmia 2 byte ad ogni puntatore passato, ed è anche più semplice tenere il conto della ram utilizzata.
Questo poichè difficilmente il codice diventa tanto complesso da avere decine di globali, o da necessitare parametrizzazione delle funzioni per avere un differente target di variabili

Be se ha 10 variabili globali la cosa è sotto controllo, ma comincia a diventare un problema in programmi con più moduli, specie in fase di debug per non parlare di quando per un mese di dedichi ad altro e poi devi riprendere in mano il codice per apportare delle modifiche.

Ciao.