se vuoi mappare i pin in modo efficiente, il metodo più semplice è basarsi sul fatto che in PINx i bit sono in ordine come i pin arduino (non so se è vero, mi pare di sì)
se così è, allora il metodo più efficiente è un poco di matematica per calcolare il valore con cui fare la and o l'xor logico.
Solo che ogni campo occupa una locazione che contiene l'indirizzo di memoria a cui è mappato il registro ed io invece volevo che questo facesse parte della struttura, così avrei risparmiato memoria e organizzato i registri in strutture.
non ho capito
passando ad una funzione un puntatore a dato di una struttura poi c'è il modo di ricavare il puntatore alla struttura
si ma no. Nel senso, sai la posizione del dato nella struttura(offset del dato), quindi "indirizzo dato"-"offset" = "indirizzo struttura". Però poi se cambi la struttura crei casini, senza contare l'illeggibilità del codice.
IMHO è sbagliato il fatto che alla funzione passi il dato: passagli tutta la struttura!