Go Down

Topic: Lettura contemporanea più input (Read 871 times) previous topic - next topic

Etan

Salve a tutti ragazzi.

Grazie all'utilizzo dei registri ed all'istruzione PORT riesco a cambiare contemporaneamente lo stato di più pin di output.

Quello che mi chiedo adesso è se c'è la possibilità di fare la stessa cosa con gli input.
Posso cioè leggere nello stesso istante lo stato di più pin di Input?

Grazie per i vostri suggerimenti?

leo72

Impostando il pin come ingresso, leggendo il registro PINx vedi lo stato dei pin, dopo puoi selezionare quello o quelli che ti servono con semplici operazioni suoi bit

Qui trovi maggiori info:
http://www.arduino.cc/en/Reference/PortManipulation

Etan

Grazie mille è proprio quello che mi serviva.
In particolare ho una batteria di sensori IR di cui ho parlato in un altro post.
Devo verificare che la loro uscita abbia una transazione L -> H -> L.
Pensavo di farlo mettendo i valori del registro PINx in 3 vettori e verificare bit per bit se si ha il comportamento desiderato.
Scusa la digressione, volevo renderti partecipe e magari sapere che ne pensi :=)

MauroTec

La verifica dei bit di una variabile o registro che sia la puoi fare con le bitwise, o anche senza usando lo switch case

0000 0001     Sono 8 bit è vale 1 in decimale
byte myport = 1 // o byte myport = 0x1 equivale a 0000  0001 in binario

if(myport == 1) valuta la condizione come vera

Se invece hai proprio la necessità di accedere ai singoli bit, puoi usare le struct C con i bitfield, si tratta di una struttura dati grande almeno
8 bit composta da 8 campi ognuno grande 1 bit. Es se la struttura si chiama porta pui accedere ad ogni bit così:

porta.b0
porta.b1
porta.b2
ecc.

Ciao.
 
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Etan

Molto interessante!!!
Grazie Mauro.

Go Up