rileggendo il sorgete in ASM e la tua risposta ho dedotto il funzionamento corretto.. dunque Il master legge dalla SDA solo dopo aver scritto sulla SCL un bit Alto (uno) .. come dire.... DAMMI UN BIT DEL BYTE DA RICEVEREEEE !
per cui è essenziale che SCL sia di uscita per il master , mentre l'SDA di ingresso.. in questo modo si spiega il perchè..
spero d'aver centrato il concetto ..purtroppo usando le classi pronte di Arduino queste cose non si imparano, rimangono concetti inesplorati...
a dopo
fausto
Citazione:
Originalmente inviato da faustog_2 allora c'è qualcosa che mi sfugge.. dunque.... supponendo che ci sia il master (per esempio un Pic16F84 ) ..che decide di comunicare con lo slave il sensore LIS302DL ...dopo aver concordato l'indirizzo SAD e dopo aver preso l'ack ...inizia la vera e propria comunicazione ..che si avvale di due linee.... in cui il Mastrer deve ascoltare x entrambe.. quindi per entrambe deve avere una modalità di lettura Input, quindi mi aspetto anche
BSF TRISB, 0
oltre che
BSF TRISB,1
invece non c'è! ..non esiste nel codice sorgente!
In teoria il master dovrebbe ascoltare su entrambe le linee, quindi modalità Input per entrambe. Appena arriva un fronte di salita sulla SCL ...allora prende per buono il valore :alto, basso che legge nella SDA.
..dalla tua risposta intuisco ...di non aver capito qualcosa da questo protocollo! |