Go Down

Topic: Arduino e SPI (Read 463 times) previous topic - next topic

flz47655

Ciao a tutti,
Stavo convertendo l'istruzione
Code: [Select]
SPCR  = _BV(CPOL);
in "codice arduino" e pensavo di usare l'istruzione SPI.setDataMode() ma non è equivalente.. qualcuno mi può dare una mano a capire perché non è compatibile con la modalità 2 o 3?

Ciao e grazie a tutti

flz47655

Mmmhh.. che ci sia un bug?
Il comando setDataMode(2) che dovrebbe settare CPOL=1 e CPHA=0 modifica il registro SPCR da 1010000 ad 1010010...
Mentre secondo http://www.downtowndougbrown.com/2011/11/microcontrollers-spi-part-2/ dovrebbe impostare i bit 2 e 3...  :smiley-eek-blue:

flz47655

#2
Sep 23, 2012, 07:21 pm Last Edit: Sep 23, 2012, 07:23 pm by flz47655 Reason: 1
Ho scuriosato nel sorgente ed in effetti bisogna passare SPI_MODE2 alla funzione.. sicuramente la pagina http://arduino.cc/en/Reference/SPI NON è chiara su questo punto.. era però specificato su http://arduino.cc/en/Reference/SPISetDataMode  ]:D
Sarebbe stato meglio un qualcosa di più tipizzato o un qualcosa che ti fa capire che hai passato il parametro sbagliato invece di scasinare il registro SPCR e non dire niente se il parametro sbagliato è errato..

Federico Vanzati

Si hai ragione, nella tabellina nella pagina http://arduino.cc/en/Reference/SPI sarebbe meglio mettere il nome delle 4 costanti al posto dei numeri.

A breve verrà aggiornata parte della documentazione e tra i vari aggiornamenti uno è toccato anche alle pagine SPI. Integrerò anche questa modifica. Grazie
F

flz47655


Go Up