Salve a tutti del forum,
sto facendo un sw con arduino.
Il progetto consiste nella lettura contemporanea di 8 bit (1byte binario) di una periferica e registrarlo in un file, per iniziare va bene anche il Monitor.
Come collegamenti: Arduino ha i primi 8 pin digitali (0 a 7) connessi con la periferica (con massa in comune). In più c'è un'altro pin digitale (pin 8) connesso al pin enable della periferica.
La periferica in un tempo passato si connetteva ad un PC tramite porta parallela.
Praticamente, quando il pin enable si porta allo stato logico 1, Arduino ha l'intero byte stabile da acquisire e memorizzare/monitorare.
Ritornando alla programmazione, nella funzione setup() ho impostato i PIN interessati (da 0 a 8) come: pinMode(0, INPUT_PULLUP);
....
pinMode(8, INPUT_PULLUP);
Nella funzione Loop() eseguo un controllo sulla lettura del pin digitale 8. Se la lettura restituisce 1 Arduino deve leggere l'intero byte (0 a 7) e stamparlo/memorizzarlo.
Da tutti gli esempi che ho visto, esiste la funzione "digitalRead(pin);" che opera su un singolo pin.
Domanda: esiste una funzione per ottenere il byte intero in un unico ciclo? (anche se restituisce un char va bene lo stesso).
Chiedo questo perchè potrei avere un treno di byte (con una frequenza inferiore a quella di Arduino da memorizzare. Usare 'n' digitalRead(pin) per poi costruire il byte di output, temo che potrei perdere qualche byte.
Ovviamente, nei prossimi giorni, il pin enable della periferica sarà connesso al pin digitale di Arduino che è utilizzabile come interrupt con la apposita funzione.
Vi ringrazio per ever letto, ancor di più se mi date un feedback.