Go Down

Topic: come dare il valore a una variabile byte prendendo come bit gli ingressi? (Read 1 time) previous topic - next topic

?R

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

INPUT 1 == 0
INPUT 2 == 1
INPUT 3 == 1
INPUT 4 == 0
INPUT 5 == 0
INPUT 6 == 0
INPUT 7 == 1
INPUT 8 == 0
--> value==98

esiste una funzione che mi fa questo calcolo? o devo farmi un programmino che me lo calcola? scusate ma sono un po' nuovo del linguaggio di arduino :smiley-red:
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

leo72

Code: [Select]
byte a=PORTB;
ed assegni tutti i bit della porta B, che comprende i pin dall'8 al 13.
Puoi fare lo stesso con PORTC e PORTD.

http://www.arduino.cc/en/Reference/PortManipulation

?R

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 :)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

astrobeed


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.

?R

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?
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Go Up