title | categories | subCategories | ||
---|---|---|---|---|
shiftIn() |
|
|
Fa "scorrere" un byte di dati da un dispositivo esterno all’arduino, un bit alla volta. Può partire sia dal bit più significativo ( il primo a sinistra ) che dal meno significativo ( l’ultimo a destra ). Per ogni bit, il pin di clock viene impostato su HIGH, il bit successivo viene letto dalla linea dati, quindi il pin di clock torna nello stato LOW.
Se ti stai interfacciando con un dispositivo che è controllato dalle transizioni crescenti del segnale di clock ( LOW → HIGH ), dovrai assicurarti che il pin di clock sia nello stato LOW prima di effettuare la prima chiamata a shiftIn()
, ad esempio con una chiamata a digitalWrite(clockPin, LOW)
.
NOTA: questa è un’implementazione software; Arduino fornisce anche una libreria SPI che usa l’implementazione hardware, che è piu veloce ma funziona solo su pin specifici.
byte datiInArrivo = shiftIn(dataPin, clockPin, bitOrder)
dataPin
: il pin dal quale leggere ogni bit (int)
clockPin
: il pin usato per segnalare una lettura da dataPin
bitOrder
: l’ordine in cui far "scorrere" i bit; può essere MSBFIRST oppure LSBFIRST.
( Prima i bit più significativi, oppure, Prima i bit meno significativi )
il valore letto (byte)