ども、@JimHazeRです。
ArduinoどうしでSPIでお話がしたくなった(唐突)のでいろいろ調べまくったのを取り敢えずまとめておこうかと。
さて、取り敢えずMaster側で必要なことを。
SPI.hをinclude
SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV4);
SPI.setDataMode(SPI_MODE2);
SPI.begin();
上から最上位と最下位ビットどちらから送信するのかを設定
通信速度設定
アイドル状態とどこの変化で送信するかを設定
開始
この4つはsetupに入れておく
SSピンをセレクト
SPI.transfer(val);
この2つは送信したいところに入れる。
Masterはこれだけ。超簡単。
次にslave側
SPI.hをinclude
MISOピンをOUTPUTに
SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV4);
SPI.setDataMode(SPI_MODE2);
役割は上と同じ。
SPCR |= _BV(SPE);
SPI.attachInterrupt();
これでSPIを有効に。
あとはslave側はいつ通信が飛んでくるかわからないので割り込み処理を
ISR(SPI_STC_vect)
{
byte ch = SPDR;
}
って書いて読み取りOK
おわり。
結構かんたんだった。
寝ます