Programmazione avanzata arudino

Si, questo l'avevo capito dal datasheet, ma quello che mi chiedo è come faccia arduino a capire quando gli arriva un bit. Quando ho fatto il mio culoled spedivo i bit allo shift refgister con shiftout, esiste una specie di Shift in che legga i bit in ingresso? Comunque è solo una curiosità, quanto prima affrontero il C e poi magari capirò meglio.

Un bit non è altro che uno stato elettrico di quel pin. Un segnale High è un bit 1, un segnale Low è un bit 0. Ovviamente la cosa è temporizzata quindi ogni tot ns viene letto lo stato del pin e convertito in bit.

GRAZIE! allora "basta" fare un controllo se è HIGH o LOW, giusto? e ogni quanto va fatto? 1 ns? meno? Dai che dopo provo a vedere se mi viene fuori qualcosa XD Grazie ancora!

Il tempo lo stabilisce chi scrive il protocollo, deve tener conto anche della velocità di lettura del pin.

quindi ci dovrebbe essere scritto nel datasheet, giusto? Più tardi (dopo la f1!!! :grin:) provo a scrivere qualcosa. :wink:

scusate, ma su wiki nel one wire leggo questo:

To send a "1", the bus master software sends a very brief (1–15 µs) low pulse. To send a "0", the software sends a 60 µs low pulse

quindi viìuol dire che sia lo 0 che l'1 sono caratterizzati da segnali logicamente bassi?

Sì, la linea è mantenuta alta da una resistenza di pull-up (guardati che cos'è se non lo sai) e tutti i dispositivi sono open-drain percui al posto dell'uno logico vanno in alta impedenza. L'unico sistema quindi per riconoscere due stati è giocare sul tempo in cui la linea rimane bassa per azione di un dispositivo.

Ho ripensato un po a quanto detto e si potrebbe usare il pulsein visto che sono degli stati logici. Piano piano mi sto anche imparando il C con la guida di html.