esiste una funzione su arduino che mi permette di dare il valore ad una variabile, per esempio byte, prendendo come bit gli ingressi dell'arduino?
per esempio:
INPUT 1 == bit7
INPUT 2 == bit6
INPUT 3 == bit5
INPUT 4 == bit4
INPUT 5 == bit3
INPUT 6 == bit2
INPUT 7 == bit1
INPUT 8 == bit0
ok ma questo ma vale anche per i mega2560? basta che mi guardo che pin che comprendono le varie porte no?
e se anzi che occupare tutti gli 8 bit ne occupo solo 5 gli altri li devo mettere a massa o comunque lasciare inutiliazzati... questo non mi piace molto...
comunque è fattibile grazie
er_like_no_other:
e se anzi che occupare tutti gli 8 bit ne occupo solo 5 gli altri li devo mettere a massa o comunque lasciare inutiliazzati... questo non mi piace molto...
Leggi tutta la porta e poi applichi una maschera AND o OR a seconda se vuoi tenere fissi a 1 o 0 i bit che non ti interessano e che puoi usare per altri scopi sia come IN che come OUT.
non ho capito bene cosa intendi tu.. ma ho una mezza idea di come potrei fare, è che devo comunque intervenire via software, ma non è neanche un gran problema alla fine...
per il mega2560 uso lo stesso principio no?
supponiamo che hai salvato nella variabile n tutti i bit di una porta dell'atmega, e a te interessa salvare i primi 4 della porta in un'altra variabile x:
se te fai
x=n & 0x11110000
adesso in x trovi nelle prime quattro posizioni i bit salvati e nelle altre 4 trovi 0..
così ti va bene?
se io dovessi dare un valore a una porta tipo PORTD=B00001011, cioè la uso come output, ma mi bastano solo 4 pin della porta, gli altri posso usarli come input? o devo lasiarli inutilizzati? come funziona?
er_like_no_other:
non mi è chiara una cosa... ma io impostando la porta come input o output posso usare anche i pin analogici come pin digitali o no?
grazie a tutti